oracle代码常见错误摘要

许多使用其他数据库的朋友在进入Oracle数据库时常常会犯一些习惯性错误。本文总结了一些常见的Oracle代码错误,供您查询和比较。

1。INSERT语句被写为:


插入到t1值(…)



它应该如下所示:


插入t1(…)值(…)






to_char(SYSDATE,'yyyymmddhhmmss)



应该改为:




to_char(SYSDATE,'yyyymmddhh24miss)






select count(*)为v_count从T1 C1 =;



的no_data_found错误永远不会被触发,并v_count = 0应判断

4。返回值问题:

合理处理方法:

在流程结果的开始时:= false;

在流程结果的结尾处:=真;

没有必要指定一个值来产生中间值。

不合理的治疗方法:

在流程结果的开始时:=真;

结果:当每个判断中的中间代码不一致时,需要错误赋值。

过程结束时不需要分配结果。




选择C1,C2,C3 = v_c3从T1;
如果v_c1 = 0或v_c2 = 0



如果找不到代码,它将被报告错误,不会返回到0。

它应该被当no_data_found




在C1 =v_c1 | | ..;


对于字符C1场,用单引号,或者不使用的C1指数、Oracle转换到C1 =| | CHR…(39)| | to_char(v_c1)| | CHR(39);

改变:




其中C1 =| | CHR(39)| | v_c1 | | CHR(39);



7。如果只有数据判断,和rownum < 2应加快




选择计数(*)
为v_count
从T1
其中C1 = v_c1;



条件应该说:和rownum < 2




存在(选择*)
从T1



它应该如下所示:




在存在(select'x)
从T1






raise_application_error(20000,infomsg);


不要全部使用20000个错误号。

对于raise_application_error可用的错误数的范围是从20000到20999