Oracle数据库报错整理备注

本文汇总了Oracle数据库在使用过程中遇到的一些典型错误,如无效标识、缺少逗号、值不足、无法扩展表、约束名冲突、存储过程编译错误和无效数字等问题,并提供了详细的错误原因分析和解决建议,帮助读者在遇到类似问题时能快速定位和解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


自己整理下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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值