Oracle新手注意点

管理方面:
1. SYS用户创建的表是无法为其创建触发器的。(会报错:ORA-04089)
2. 一个表最多只能有1000列.(oracle 在内部会把列数大于254列的行存储在多个单独的区段中)
3. ORA-02778: Name given for the log directory is invalid
    建立的DIRECTORY对应操作系统相应的目录文件夹,千万注意不要直接在操作系统删除这些文件夹,不然会出现上面的错误,数据库也会起不来.
4.ALTER TABLE为DDL操作,会自动提交,要注意。
5.子分区DROP后不会出现在回收站里。




开发方面: 
1. EXECUTE IMMEDIATE v_sql执行语句时,一定要注意变量v_sql里最后不要带分号(;).
declare
v_sql varchar2(1000);
v_ename varchar2(20);
begin
v_sql:='select empno from emp where rownum=1';--不能是v_sql:='select empno from emp where rownum=1;';
execute immediate v_sql into v_ename;
DBMS_OUTPUT.PUT_LINE(V_SQL);
end;
/




2.创建包时候,包头中声明的函数\存储过程要和包体中定义的一致
如:
某包头这样声明: function getArea(id in number) return number;
包体定义: function getArea(r in number) return number;--会报错,因为参数名不一样


3.存储过程中的变量VARCHAR2(包括存储过程参数)可以达到327060的长度,CLOB变量可以更长,但需要使用DBMS_LOB来处理,且注意要用
  dbms_lob.createtemporary(CLOB变量, true);来创建临时空间保存CLOB变量。


4.注意CHAR类型的特殊性,固定长度




相关建议:
1. 未知的异常处理建议放到客户端去控制,PLSQL里面不要有COMMIT和ROLLBACK等事务控制语句
2. 字段不要使用CHAR类型,它是固定长度且受字符集影响
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值