Oracle 如何在pl sql中无错误地显示非常长的clob

Oracle 如何在pl sql中无错误地显示非常长的clob,oracle,plsql,concatenation,clob,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。0000

您好,我正在使用以下声明创建一个新的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-“字符串连接的结果太长”

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

操作:确保结果小于最大大小。您可以使用和

比如:

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;
您可以使用和

比如:

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;

为什么不将
clobs
写入文本文件并将其作为附件发送?为什么不将
clobs
写入文本文件并将其作为附件发送?