怎么concat很长时间blob在pl sql没有错误

时间:2017-07-05 14:24:39

标签: oracle plsql concatenation clob

您好我正在使用此声明创建一个新的plsql函数:

string_result CLOB;
string1 CLOB;
string2 CLOB;

在我的身体里,我有:

...
for i in variable
loop
 string_result := string_result || string1 || string2 ;
end loop
...
--send string_result in mail
...
return 1

当我执行此功能时,我收到了:

01489。 00000 - “字符串连接的结果太长”

原因:字符串连接结果超过最大大小。

操作:确保结果小于最大尺寸。

1 个答案:

答案 0 :(得分:2)

您可以使用DBMS_LOB.CREATETEMPORARYDBMS_LOB.WRITEAPPEND

类似的东西:

DECLARE
  string_result CLOB;
BEGIN
  DBMS_LOB.CREATETEMPORARY( string_result, TRUE );
  FOR i IN variable LOOP
    DBMS_LOB.WRITEAPPEND( string_result, LENGTH( string1 ), string1 );
    DBMS_LOB.WRITEAPPEND( string_result, LENGTH( string2 ), string2 );
  END LOOP;
  --send string_result in mail
END;