解决SQL Error: 1461, SQLState: 72000 can bind a LONG value only
问题
SQL Error: 1461, SQLState: 72000 can bind a LONG value only
即:SQL Error: 1461, SQLState: 72000 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
1
2
3
2
3
解决方案
mysql
暂时没测试mysql会不会爆该错误,若出现类似的可以直接修改为longtext:
-- 修改用户行为错误记录中信息字段类型为longtext
alter table sys_user_behavior_err_info modify column info longtext
1
2
2
oracle方案
-- 修改行为错误记录表info的字段类型方案(Oracle本身无法直接从VARCHAR2转为clob)
-- 若有DBMS_REDEFINITION(在线重定义表)权限,亦可考虑通过DBMS_REDEFINITION更改字段,其方法据说最安全,但步骤比较复杂。
-- 1.修改用户行为错误记录中信息字段类型为clob
ALTER TABLE SYS_USER_BEHAVIOR_ERR_INFO add info_new clob;
update SYS_USER_BEHAVIOR_ERR_INFO set info_new=info,info=null;
commit;
ALTER TABLE SYS_USER_BEHAVIOR_ERR_INFO modify info long;
ALTER TABLE SYS_USER_BEHAVIOR_ERR_INFO modify info clob;
update SYS_USER_BEHAVIOR_ERR_INFO set info=info_new,info_new=null;
commit;
ALTER TABLE SYS_USER_BEHAVIOR_ERR_INFO drop column info_new;
-- 2.查询到表中的索引,如:数据库SPARKDEV中的SYS_C0051930,每个数据库中的索引名称可能名称不同。
select * from user_indexes where table_name ='SYS_USER_BEHAVIOR_ERR_INFO'
-- 3.对2中查询到的index_type为NORMAL的索引执行重建,一般只有1条,若查询为空则无需执行。此处仅是示例,以实际情况为准。当存在时若不执行2和3可能会导致存储时报错:ORA-01502: 索引 'SPARKDEV.SYS_C0051930' 或这类索引的分区处于不可用状态
alter index SPARKDEV.SYS_C0051930 rebuild online;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
扩展
(Clob的写入和读取-java)更新数据库报错:SQL Error: 1461, SQLState: 72000 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
预览
除特别注明外,本站所有文章均为 windcoder 原创,转载请注明出处来自: jiejuesql-error-1461-sqlstate-72000-can-bind-a-long-value-only
Loading comments...

预览
暂无数据