How to resolve ORA-01489: result of string concatenation is too long in a spool operation

A CSV export script similar to this one resulted in „ORA-01489: result of string concatenation is too long“:

set heading off feed off verify off lines 8500 trimspool on long 8500 longchunksize 8500 termout off pages 0

spool out.csv 

SELECT '"' ||
  a || '";"' ||
  b || '";"' ||
  c || '";"' ||
  d || '"' 
from T 
where ... ;

spool off
exit

with c and d of varchar(4000) format.

The solution is to concatenate the entire export line as a CLOB:

SELECT to_clob('"' ||
  a || '";"' ||
  b || '";"') ||
  c || '";"' ||
  d || '"' 
FROM T
where ... ;

 

Advertisements

Kommentar verfassen

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s