Datatyperna LONG och LONG RAW har fasats ut till förmån för CLOB och BLOB sedan Oracle 8.0 (dvs. för nästan femton år sedan). Den främsta anledningen till denna växling är att LONG kolumner är väldigt svåra att arbeta med, och det är dubbelt för LONG RAW.
Som du redan har upptäckt finns det en gräns för vad vi kan göra i PL/SQL. Den gränsen är 32K. Större LONG RAW-kolumner kan endast hanteras i C.
Tom Kyte brukade vara värd för ett verktyg för att ladda ner Long Raw-kolumner till en platt fil, som sedan kunde laddas till moderna LOB-kolumner via SQL Loader. Det här verktyget verkar inte vara tillgängligt (det finns inte på listan över /~tkyte-filer på hans blogg).
Fangxin Lou har dock skrivit en version av ett annat Tom Kyte-verktyg, som han heter ociuldr
och som tydligen hanterar Long Raw. Du kan ladda ner källan från hans webbplats. Ta reda på mer
.
OBS Jag har inte provat ociuldr
för mig själv (jag har inte stött på en Long Raw sedan förra årtusendet), och jag garanterar det inte på något sätt. Men det verkar vara den enda lösningen som internet erbjuder just nu. Så jag föreslår att du provar det, såvida du inte har goda OCI-kunskaper och kan skriva din egen implementering.