wanglilin 2013-10-11 07:18 采纳率: 0%
浏览 5471

ORA-03001:未实施的功能 和 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值

我现在一个存储过程中报错“ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值”,我怀疑是clob限制的问题,但是做实验时遇到下面的错误

我是写了一个很简单的存储过程,准备验证普通表中clob字段存储有没有大小限制,查资料好像说最大4G,我想验证一下。但是写存储过程将大量数据插入clob字段时报标题错误:

版本:
SQL> select * from v$version;

BANNER

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

语句:
建表:
create table t_wll_clob(mobile clob);

建存储过程:
create or replace procedure p_wll_clob
as
v_clob clob;
begin
for v_11 in(select allcode from T_BUSI_MAIN_PRESEND3 where main1status='0') loop --allcode字段为clob类型,存储的是用逗号分隔的手机号码。for一共500条记录,每条200个用逗号分隔的手机号
v_clob := v_11.allcode||','||v_clob;
end loop;
insert into t_wll_clob(mobile) values v_clob;
end ;

报错:
insert into t_wll_clob(mobile) values v_clob; ORA-03001:未实施的功能

求高手解答。
另外我想知道:
1.普通表中clob字段最大限制是多少
2.存储过程中clob变量最大限制是多少
3.如果clob有限制,那么超过限制报错一般是怎么解决,是限制数据的大小还是?

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-03-22 14:41
    关注

    该回答引用ChatGPT-3.5

    关于你的第一个问题,普通表中CLOB字段的最大限制因数据库版本和设置而异,对于Oracle 10g,最大CLOB大小为4GB。但需要注意的是,如果在一个CLOB列中插入超过100万字符的数据,可能会导致插入性能下降。


    关于你的第二个问题,存储过程中CLOB变量的最大限制也是因数据库版本和设置而异,对于Oracle 10g,最大CLOB大小为4GB。


    关于你的第三个问题,如果超过CLOB的最大限制,一般会报错。解决方法取决于具体情况,可能需要更改数据库设置或修改应用程序。如果需要插入超过CLOB最大限制的数据,可以考虑使用BLOB类型。


    针对你的代码和错误,你的存储过程中的insert语句应该改为以下形式:

    insert into t_wll_clob(mobile) values (v_clob);
    

    另外,您还可以尝试使用DBMS_LOB包中的写入函数来更好地管理CLOB数据。例如,使用DBMS_LOB.WRITEAPPEND函数可以将字符串追加到CLOB中,而不需要使用循环来实现。

    评论

报告相同问题?

悬赏问题

  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划