用
ORA
CLE数据库的时候,会出现
标识符
过长
的异常。Unhandled exception. System.Exception:
ORA
-
00972
:
标识符
过长
ORA
-06512: 在 line 26--->
Ora
cle.ManagedDataAccess.Client.
Ora
cleException (0x80004005):
ORA
-
00972
:
标识符
过长
ORA
-06512: 在 ...
EMP_NAME AS "申请人",
CREATE_TIME AS "申请日期",
EXTRACTVALUE(DOCUMENT_DATA, '/root/empCompany') AS "所属公司",
EXTRACTVALU
1.原因分析
出现该问题一般是表名称、列命名或者别名
过长
,超出了
ora
cle数据库的限制。
ora
cle数据库版本在12.1之前的,包括12.1名称限制长度为30个字符串。12.2及以后修改限制长度为128个字符串。
2.解决方法
开发过程中遇到此问题可以修改自己的sql语句,保证字段长度在限制之内。
数据导入出现此问题一般只能更换高版本的数据库,不然无法正常导入数据。
习惯了mysql,SqlServer数据库的我,因为某些不可抗力的原因需要使用
ora
cle,从头学起,发现坑还是蛮多的。不说了
ORA
-
00972
: identifier is too long 问题处理
关于这个错误从报错提示来看,就是标识位置字段太长了,一般出现在别名长度问题上。这种情况对字段做出些修改即可。还有另外一种情况,也会报相同的错误,一条SQL可以在客户端工具如navicat,PLSQL等执行,但是却无法在SQL Plus中执行。出现这种情况一般是字符集的问题。
测试流程:
1)在SQL Plus中执行
SYS@proe>SELECT
a.tablespace_name "表空间名",
java.sql.SQLException:
ORA
-
00972
:
标识符
过长
ORA
-
00972
:
标识符
过长
博客申明
ORA
-
00972
:
标识符
过长
代码提要
ORA
-
00972
:
标识符
过长
异常原因
ORA
-
00972
:
标识符
过长
博客申明
每个人的代码差异不同,不代表所有问题错误都出自于此,我只分享我出现问题的场景及原因
以下sql使用的连接方式是jdbctemplate
ORA
-
00972
:
标识符
过长
代码提要
PreparedStatementCallback; bad SQL gram
select u.* from sys_user u join sys_r_role_user ru on u.u_id = ru.o_id join sys_role r on r.role_id = ru.role_id
where r.r_name = “行政人事司_督查处处员”;
由于其中的双引号导致出现“
标识符
过长
”错误。
将“”换成”即可!
不难看出 当前用户下 所有创建的 索引 序列 表名 都有进行记录
select oname, length(oname) num from op_info order by num desc;
目前上图所有的
标识符
长度最大值被限定在20个字符长度
我们对当前OP_INFO表进行查看列的数据类型及其长度
select * from
一直以来写SQL语句发生
标识符
无效一般多为列名写错导致
但是今天发生了一个意外的情况,在
ora
cle数据库建了一张表,创建成功后,发现数据表的列名是小写的,想了想看过的书里面说过
ora
cle会自动将小写转换成大写,于是就选择性忽略了.
由于
ora
cle会自动将我们写的SQL语句列名自动转为大写,所以平时写SQL时,采用全小写方式居多.
但是今...