首页 > 数据库 > Oracle > ORA-01461问题的对比测试
使用关键字values来插入。
using key word “values” to insert.
SQL> Declare
vx Varchar2(32767);
Begin
For i In 1..3000 Loop
vx:=vx||'0123456789';
End Loop;
dbms_output.put_line('length:'||length(vx));
Insert Into test_lob Values(Sysdate,vx);
End;
/
length:30000
PL/SQL procedure successfully completed.
--》场景 #2
使用子查询来插入,如果变量值大于4000,就会自动把变量分成两部分作为long data type来插入。
Using subquery to insert, variable values larger than 4000 will divided into parts for long datatype.
SQL> Declare
vx Varchar2(32767);
Begin
For i In 1..400 Loop
vx:=vx||'0123456789';
End Loop;
vx:=vx||'.';
--Insert Into test_lob Values(Sysdate,vx);
dbms_output.put_line('length:'||length(vx));
Insert Into test_lob
Select Sysdate,vx From dual;
End;
/
length:4001
Declare
*
ERROR at line 1:
ORA-01461: can bind a LONG value only for insert into a LONG column
ORA-06512: at line 10
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14300593/viewspace-1126651/ ,如需转载,请注明出处,否则将追究法律责任。