常见oracle错误代码ORA-xxxxx及其解决方法(持续更行中)

时间:2020-12-10 22:48:28

本文地址:

ORA-00001: 违反唯一约束条件 主键重复。

ORA-00900: 无效 SQL 语句 错误原因:错误换行,错误使用其他数据库或者windows命令
例: SQL> shutdown immediate;
shutdown immediate
ORA-00900: 无效 SQL 语句
——解决方法————————————————
plsql没有此命令 应该是在sqlplus里面执行该命令
————————————————————– 
ORA-00901: 无效 CREATE 命令 一般创建表时出现,仔细检查建表语句格式
ORA-00902: 无效数据类型 出现oracle不支持的数据类型
ORA-00903: 表名无效 错误原因:使用oracle内部的表如user,建表时表名上有单引号或者双引号,动态SQL用绑定变量不能传参做表名等
ORA-00904: 无效的标识符 引用不存在的列
ORA-00905: 缺少关键字 注意关键字间的空格
ORA-00906: 缺少左括号
ORA-00907: 缺少右括号
ORA-00908: 缺少 NULL 关键字
ORA-00909: 参数个数无效 错误原因:别名使用数字
ORA-00910: 指定的长度对于数据类型而言过长
ORA-00911: 无效字符 错误原因:中英文字符
ORA-00913: 值过多 插入时,值个数大于参数个数
ORA-00914: 缺少 ADD 关键字
ORA-00917: 缺少逗号 可能由于缺少其他符号引起,不一定要锁定逗号
ORA-00918: 未明确定义列 列名同时存在于两个表中,建议多表操作时加表名前缀
ORA-00919: 无效函数 使用rank() over (order by XXX desc) 而不是rank()
ORA-00920: 无效的关系运算符 关系运算符两边不一致。
ORA-00921: 未预期的 SQL 命令结尾 oracle使用单引号而不是双引号界定字符串
ORA-00922: 缺少或无效选项 一般是语句的语法有问题。比如命名不对,关键字写错等等
ORA-00923: 未找到预期 FROM 关键字
ORA-00924: 缺少 BY 关键字
ORA-00925: 缺失 INTO 关键字
ORA-00926: 缺少 VALUES 关键字
ORA-00927: 缺少等号
ORA-00928: 缺少 SELECT 关键字
ORA-00929: 缺少句号
ORA-00930: 缺少星号
ORA-00931: 缺少标识
ORA-00932: 不一致的数据类型: 要求数据类型和得到的数据类型不一致
ORA-00933: SQL 命令未正确结束 sql语句有格式问题
ORA-00934: 此处不允许使用分组函数 存储过程中select出的count(1),sum(sl)需要into一个变量中
ORA-00935: 分组函数的嵌套太深 having子句定义过深。
注意:sql中子嵌套最好不要超过三层,效率低。
ORA-00936: 缺少表达式 关注关键字拼写和逗号问题、
ORA-00937: 非单组分组函数 使用avg,min,max,sum,count,rank()等函数时,可能需要group by语句
ORA-00938: 函数没有足够的参数 关注to_char,to_date等函数的参数是否存在,尤其出现字符的时候
ORA-00939: 函数的参数过多 关注使用的函数是否包含太多参数或者语法格式有误
ORA-00940: 无效的 ALTER 命令
ORA-00942: 表或视图不存在 oracle大小写敏感,此外oracle支持”“语法。
ORA-00943: 群集不存在 可能是创建的DATAFILE过小,改大一点
ORA-00946: 缺少 TO 关键字
ORA-00947: 没有足够的值 两种情况下出现:
1)insert into table_name values (1,2,3); 表四个字段,缺省表字段时,默认为所有
2)insert into table_name1() select * from table_name2 表1 2字段不同
ORA-00950: 无效 DROP 选项 漏掉中间的table,sequence,index,constraint等关键字
ORA-00952: 缺少 GROUP 关键字
ORA-00953: 缺少或无效索引名
ORA-00954: 缺少 IDENTIFIED 关键字
ORA-00955: 名称已由现有对象使用 先执行select a.OBJECT_type,a.* from all_objects a where upper(a.OBJECT_NAME) =’table_name’;如果有视图或者过程存在,删除;再以管理员登录数据库执行 alter system flush shared_pool;退出。
ORA-00957: 列名重复
ORA-00958: 缺少 CHECK 关键字
ORA-00959: 表空间”不存在 大小写和双引号问题
ORA-00960: 选择列表中的命名含糊 两表中相同字段未加表名前缀
ORA-00961: 错误的日期/间隔值
ORA-00962: group-by / order-by 表达式过多
ORA-00963: 不支持的间隔类型 关键字问题
ORA-00964: 表名不在 FROM 列表中
ORA-00965: 列别名中不允许’*’
ORA-00966: 缺少 TABLE 关键字
ORA-00967: 缺少 WHERE 关键字
ORA-00968: 缺少 INDEX 关键字
ORA-00969: 缺少 ON 关键字
ORA-00970: 缺少 WITH 关键字
ORA-00971: 缺少 SET 关键字
ORA-00972: 标识过长 Oracle规定名称最长30个字符
注意:Oracle规定名称最长30个字符
ORA-00973: 无效的行数估计
ORA-00974: 无效 PCTFREE 值 (百分比)
ORA-00975: 不允许日期 + 日期
ORA-00976: 此处不允许为 LEVEL, PRIOR 或 ROWNUM
ORA-00978: 嵌套分组函数没有 GROUT BY
ORA-00979: 不是 GROUP BY 表达式
ORA-00980: 同义词转换不再有效 同义词创建时,不会去检测内容的准确性,即如果表不存在,也可以创建该表的同义词
ORA-00982: 缺少加号
ORA-00984: 列在此处不允许 建表或者修改表时出现
ORA-00985: 无效的程序名
ORA-00986: 缺少或无效组名
ORA-00987: 缺少或无效用户名
ORA-00988: 缺少或无效口令
ORA-00989: 给出的用户名口令过多
ORA-00990: 缺少或无效权限 说明:例如GRANT ALTER TABLE TO drm_mdm;这样赋权限就会报错,因为没有alter table的系统权限,只有alter any table
ORA-00992: REVOKE 命令格式无效
ORA-00993: 缺少 GRANT 关键字
ORA-00994: 缺少 OPTION 关键字
ORA-00995: 缺少或无效同义词标识
ORA-00996: 连接运算符是 || 而不是 |
ORA-00997: 非法使用 LONG 数据类型 long数据类型一个表只能有一个,且该列不能GROUP BY,order by。
ORA-00998: 必须使用列别名命名此表达式
ORA-00999: 无效的视图名

ORA-01810:格式代码出现两次 一般是日期被格式化两次。
ORA-01861:文字与格式字符串不匹配 这个错误一般出现在时间字段上,即你插入的时间格式和数据库现有的时间格式不一致