【oracle】oracle 调试 存储过程

F 20160106 oracle 几个小点

oracle 调试 存储过程
1.执行:
1)选中 过程名,右击——Test
2)子程序调用

2.重新编译:
选中 过程名,右击——Recompile
3.日志设计
异常返回 sqlcode,sqlerrm
insert到日志表

3.debug过程
打断点:Test或Edit 过程时,选择断点位置,Debug——Toggle Breakpoint

清空user的数据库对象:
方法1.重建用户
drop user <user> cascade;
方法2.删除所有数据库对象(可能会有索引,LOB删除不了)
PLSQL菜单:Tools-Export User Objects,全选-右击-drop.


oracle_FAQ
删除pk时未级联删除uq,在删除uq时会报错:
drop table <table> cascade constraints; --并不能级联删除pk的uq

alter table <table>
drop constraints <pk_constraint_name> drop index; --级联删除pk的uq

问题:drop user <user> cascad;时提示 currently connected.
措施:
alter user <user> account lock;
select username,sid,serial# from v$session s;
alter system kill session 'sid,serial#';
drop user <user> cascade;

补充:
orakill sid serial#;
alter system kill session 'sid,serial#';
alter system disconnect session 'sid,serial#';


database_properties


--oracle连续登录失败10次锁定账号
select * from dba_profiles t where t
resource_name='FAILED_LOGIN_ATTEMPTS';
alter profile default limit FAILED_LOGIN_ATTEMPTS 10;
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

Oracle中的Temporary tablespace的作用 http://www.cnblogs.com/guanjie20/p/3858480.html

#根据`pwd` 找到 PID
ps -ef|grep `pwd`|grep -v grep|awk '{print $2}'|xargs kill -9

#根据port找到PID
lsof -i:6543|grep -v grep|grep -v PID|awk {print $2}'|xargs kill -9

问题描述:oracle在insert大量数据时,造成事务日志满。
建议措施:采用不写日志及使用hint提示减少数据操作时间
举例,
alter table <table> nologging; --insert前修改为不写日志
insert /*+append*/ into <table> select * from <table>;
alter table <table> logging; --insert后修改为写日志


查看字符占用字节
select
userenv('language'),
dump('我'),
length('我'), --字符数
lengthb('我'), --字节数
vsize('我')
from dual;

说明:OS的环境变量 NLS_LANG会影响 lengthb() 的结果。

原文地址:https://www.cnblogs.com/greenZ/p/8721925.html