oracle代码的常见错误汇总

 更新时间:2014年07月10日 17:48:31   投稿:shichen2014  
这篇文章主要介绍了oracle代码的常见错误,需要的朋友可以参考下

很多使用其他数据库的朋友在转到Oracle数据库的时候经常会犯一些习惯性的错误,本文汇总了一些常见的Oracle代码错误,供大家查询比对。

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;
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<2速度更快

select count(*)
into v_count
from t1
where c1 = v_c1;

应加条件:and rownum<2

8.

WHERE EXISTS (SELECT *
FROM t1

应为:

WHERE EXISTS (SELECT 'x'
FROM t1

9.

RAISE_APPLICATION_ERROR(-20000, infoMsg);

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

相关文章

  • MSSQL与Oracle数据库事务隔离级别与锁机制对比

    MSSQL与Oracle数据库事务隔离级别与锁机制对比

    事务隔离级别是并发控制的整体解决方案,其实际上是综合利用各种类型的锁和行版本控制,来解决并发问题。锁是数据库并发控制的内部机制,是基础。对用户来说,只有当事务隔离级别无法解决一些并发问题和需求时,才有必要在语句中手动设置锁。
    2014-08-08
  • oracle中修改表名的几种方式

    oracle中修改表名的几种方式

    这篇文章主要介绍了oracle中修改表名的几种方式,需要的朋友可以参考下
    2014-07-07
  • ORACLE常见错误代码的分析与解决二

    ORACLE常见错误代码的分析与解决二

    ORACLE常见错误代码的分析与解决二...
    2007-03-03
  • Oracle分组函数之ROLLUP的基本用法

    Oracle分组函数之ROLLUP的基本用法

    这篇文章主要给大家介绍了关于Oracle分组函数之ROLLUP的基本用法,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle数据库具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Oracle 创建主键自增表示例代码

    Oracle 创建主键自增表示例代码

    我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在Oracle没有自增主键的设置,我们可以通过这篇文章介绍的方法实现,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • oracle 11g下载、安装、使用图文教程

    oracle 11g下载、安装、使用图文教程

    这篇文章主要介绍了oracle 11g下载、安装、使用图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 实例分析ORACLE数据库性能优化

    实例分析ORACLE数据库性能优化

    这篇文章主要介绍了从实例着手分析ORACLE数据库性能优化问题以及解决办法,需要的朋友参考下吧。
    2017-12-12
  • Oracle别名使用要点小结

    Oracle别名使用要点小结

    在Oracle中别名也可以在列名和表名中进行,进行别名处理是为了给列或表一个临时项,下面这篇文章主要给大家介绍了关于Oracle别名使用的一些要点小结,需要的朋友可以参考下
    2022-04-04
  • 通过LogMiner实现Oracle数据库同步迁移

    通过LogMiner实现Oracle数据库同步迁移

    为了实现Oracle数据库之间的数据同步,网上的资料比较少的时候。最好用的Oracle数据库同步工具是:GoldenGate ,而GoldenGate是要收费的。这个时候就可以使用LogMiner来实现Oracle数据同步迁移,下面文章内容将给大家介绍其实现方法
    2021-09-09
  • oracle临时表空间的作用与创建及相关操作详解

    oracle临时表空间的作用与创建及相关操作详解

    Oracle可能会需要使用到一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据,下面这篇文章主要给大家介绍了关于oracle临时表空间的作用与创建及相关操作的相关资料,需要的朋友可以参考下
    2022-07-07

最新评论