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中,而不需要使用循环来实现。

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站