我有一个列类型为LONG
的表。我知道我可以通过将列类型更改为CLOB
来解决我的问题,但在这种情况下我没有这个选项。我需要在此列中插入超过32k字符的值。
假设我有一个名为test的表,其中c1
类的列名为LONG
。
以下语句将产生错误。
insert into test(c1)values('string longer than 32k chars');
错误:ORA-01704:字符串文字太长了。
提前感谢您的帮助。
使用下面的tony示例我想做类似以下的事情:
declare
x varchar2(40000) := rpad('x',40000,'x');
begin
insert into test (c1) values (x);
end;
我知道你不能让varchar(2)变得那么大但我想要实现这个想法。
答案 0 :(得分:1)
您可以从PL / SQL插入32K字符:
declare
x varchar2(32767) := rpad('x',32767,'x');
begin
insert into test (c1) values (x);
end;
答案 1 :(得分:-1)
无意义。你的意思是什么?
SQL> create table test(c1 long);
Table created.
SQL> insert into test(c1)values('string longer than 4000 chars');
1 row created.
SQL> select * from test;
C1
-------------------------------------------------
string longer than 4000 chars
1 row selected.