面对字符串连接太长的结果
在将数据插入表中时,我面临错误字符串文字太长。因此为了解决这个问题,我使用了串联运算符。例如:值是' || ' too big 但是问题还是没有解决,现在面临字符串拼接的结果太长了。列的数据类型是clob。
Create table testlongstring(name clob)
Insert into testlongstring values('value is too '|| ' big')
面临字符串连接的问题结果太长。
如果我把普通字符串“值太大”它给 strinf litteral 太长了
回答
您正在连接两个CHAR/VARCHAR2文字值,输出是CHAR/VARCHAR2文字,如果您连接的两个表达式的长度超过 4000 字节,则该输出将失败。
例如:
Insert into testlongstring values(
RPAD('a', 4000, 'a') || RPAD('b', 4000, 'b')
);
将尝试创建一个 8000 字节的字符串(在插入表之前)并且会失败并显示错误:
ORA-01489: result of string concatenation is too longORA-01489: result of string concatenation is too long
你需要做的是先连接一个CLOB值,比如EMPTY_CLOB(),然后连接操作符会返回一个CLOB值:
db<>在这里摆弄