第191行的错误:ORA-01489:字符串连接的结果太长

use*_*170 6 sql oracle

Select TO_CLOB(a)|| TO_CLOB(b)|| TO_CLOB(c) || TO_CLOB(d) 
  from table1
Run Code Online (Sandbox Code Playgroud)

上面的查询没有将数据正确地假脱机到文本文件中.

然而,

Select a||b||c||d 
  from table1.
Run Code Online (Sandbox Code Playgroud)

结束了

第191行的错误:ORA-01489:字符串连接的结果太长.

请帮忙 !!!

Dba*_*Dba 0

增加 LONG 的价值怎么样?您可能必须将 long 变量增加到更高的值。单击此处查看详细说明。

例子:

 SET LONG 100000;
 SPOOL test_clob.txt
 SELECT to_clob(lpad('A',4000,'A'))
       ||'B'
       ||to_clob(lpad('C',4000,'C'))
       ||'D'
       ||to_clob(lpad('E',4000,'E'))
       ||'F'
  FROM dual;
 SPOOL OFF;
Run Code Online (Sandbox Code Playgroud)

您的第二个查询返回错误,因为查询中的 concat(||) 运算符试图返回 varchar2,它的字符数限制为 4000 个字符,并且已超出。