Oracle数据库报错整理备注
自己整理下Oracle库遇到的错误,免得到时又忘记
1.ORA-00904:invalid identifier无效的标识
1、表名写错了
2、字段名写错了
3、表中无该字段(或者部分字段没有用,号隔开,导致字段识别出错)
4、字段包含了Oracle的关键字(部分字符需要''括起来,不然会被识别为关键字)
2.ORA-00917:missing comma缺少逗号
这里missing comma的意思是缺少逗号
但是我遇到的时候是少了括号,所以,这应该有缺少符号的意思
解决方法,重新检查sql语句,及时整改
3.ORA-00947:not enough values没有足够的值
这里遇到的这个问题是因为,一张表有N个字段,但是插入数据的时候,插入的字段少于N
4.ORA-01653: unable to extend table无法扩展表
遇到这个问题的情形是,在某甲方外包时遇到的,原因就是分给我们的表空间不够了。
5.ORA-02264 :name already used by an existing constraint tips名称已被一个现有约束条件占用
创建表时报错,名字被占用了,换个名字
6.PLS-00103 :存储过程编译时出错
存储过程结构写错了,例如:
- 1begin开头有了,没end结尾
- 2 CREATE PROCEDURE 用户名.<过程名> ,但是end里也加了用户名(我犯了)
7.ORA-01722 :无效数字
执行的sql中有数字类型的字段,但是你传的值不是数字类型,虽然oracle会自己给你转,但是可能会转换失败
也有可能是没有+‘’引号,oracle把你传的字段认定成了数字类型,结果执行该语句失败了:
- 1当时我有一个存储过程,传入的参数是名字,为varchar2类型,但是语句里可能因为是拼接的缘故, sql || I_name,结果执行失败了,打印了一下sql发现执行后变成了 xxxx = 张三,正常应该是 xxxx = ‘张三’ ,
- 解决方式是在名字前后继续拼接了chr(39),表示‘引号 : xxxx || chr(39)|| I_name || chr(39)