oracle代码常见错误

php中文网
发布: 2016-06-07 16:21:49
原创
1294人浏览过

1. insert into t1 values(...) 应为:insert into t1(...) values(...) 2.to_char(sysdate,'YYYYMMDDHHMMSS') 改为: to_char(sysdate,'YYYYMMDDHH24MISS') 3. select count(*) into v_count from t1 where c1=?; 永远不会触发no_data_found错误,应该判断v

   1. insert into t1 values(...)

  应为:insert into t1(...) values(...)

  2.to_char(sysdate,'YYYYMMDDHHMMSS')

  改为:

  to_char(sysdate,'YYYYMMDDHH24MISS')

  3. select count(*) into v_count from t1 where c1=?;

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

  4.返回值问题

  合理的处理办法:

  在过程的开始 result:=false;

  在过程的结尾 result:=true;

  中间不需要对result赋值。

  不合理的处理办法:

  在过程的开始 result:=true;

  中间代码每一处判断不符合时需result:=false赋值。

  在过程的结尾不需对result赋值

  5. select c1,c2 in from t1 where c3 = v_c3;

Adrenaline
Adrenaline

软件调试助手,识别和修复代码中错误

Adrenaline 136
查看详情 Adrenaline

  if v_c1 = 0 or v_c2 = 0 then

  找不到时会报错,不会返回0

  应该用when no_data_found判断

  6. '... where c1 = ' || v_c1; c1字段为字符型,要加单引号,否则用不上c1索引,oracle内部转换成了'... where c1 = ' ||chr(39)|| to_char(v_c1)||chr(39);

  改为:where c1 = '||chr(39) ||v_c1||chr(39);

  7. 如果只判断是否存在数据,,应加and rownum

  select count(*)

  into v_count

  from t1

  where c1 = v_c1;

  应加条件:and rownum

  7. WHERE EXISTS (SELECT *

  FROM t1

  应为:

  WHERE EXISTS (SELECT 'x'

  FROM t1

  8. RAISE_APPLICATION_ERROR(-20000, infoMsg);不要都用20000错误号

  RAISE_APPLICATION_ERROR的可用错误号范围为-20000至-20999

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号