在使用11G数据库时,经常会遇到报错ORA-00972,原因是因为对象名称定义太长,限制为30位字符.
二、12C and later
在12C之后的版本,Oracle调整对象名称为128位字符,但是密码依然保持30位。
为了兼容不同数据库版本,需要修改对象名称定义,不超过30字符。
EMP_NAME AS "申请人",
CREATE_TIME AS "申请日期",
EXTRACTVALUE(DOCUMENT_DATA, '/root/empCompany') AS "所属公司",
EXTRACTVALU
1.原因分析
出现该问题一般是表名称、列命名或者别名
过长
,超出了
oracle
数据库
的限制。
oracle
数据库
版本在12.1之前的,包括12.1名称限制长度为30个字符串。12.2及以后修改限制长度为128个字符串。
2.解决方法
开发过程中遇到此问题可以修改自己的sql语句,保证字段长度在限制之内。
数据导入出现此问题一般只能更换高版本的
数据库
,不然无法正常导入数据。
习惯了mysql,SqlServer
数据库
的我,因为某些不可抗力的原因需要使用
oracle
,从头学起,发现坑还是蛮多的。不说了
执行SQL查询报:“
ORA
-
00972
:
标识符
过长
”错误。 执行SQL: SELECT T.F_FTBS,
T.F_TZMC "X组/XXXX/XXXX名称",
T.F_XXSJ 详细时间
FROM XXXXXXX T, XXXXXXXXX TB
WHERE T.F_XXXXXX = TB.F_XXXXXX
AND TB.F_JH...
ora
-
00972
标识符
过长
,可能的原因
原因:
Oracle
中表名,列名,标识列字符不能超过30个字符
但我是利用plsql导入csv时,报错
ora
-
00972
,表是之前建立的,所以不可能是上述原因
经检查发现:
原因:某个字段定义的属性verchar(12),而导入的数据中字段长度为15个,故报错
ORA
-00904:
标识符
无效是一个
Oracle
数据库
错误代码,表示在SQL语句中使用了一个无效的
标识符
或列名。这通常是由于以下几个原因导致的:拼写错误、缺少别名、引用了不存在的列或表、引用了不在当前作用域中的列或表等。在给出的引用中,出现了两个类似的例子,分别是指定了别名但在WHERE子句中使用了不同的别名以及引用了不存在的列或别名。
例如,引用中的错误是由于在SELECT语句中为student_id列指定了别名“stid”,但在WHERE子句中却使用了“st_id”这个不存在的别名。因此,查询提示错误,报告了
ORA
-00904: "ST_ID": invalid identifier。
要解决这个问题,你需要确保在整个SQL语句中使用的别名、列名都是正确的,并且存在于相应的表中。检查拼写、大小写、别名的一致性以及列是否存在是解决此问题的常见方法。