W komentarzu powiedziałeś:
Dokumentacja getSubString
stwierdza, że:
Dzięki prostej funkcji do generowania i zwracania CLOB, mogę pobrać go przez JDBC (ojdbc5
lub ojdbc6
) bez problemów, także z getCLOB()
lub getString()
. Ale jeśli spróbuję przypisać Oracle.sql.CLOB
pobrane za pomocą getCLOB
do String
za pomocą
String x = getSubString(0, clob.length());
wtedy otrzymuję również Invalid argument(s) in call
błąd. Po prostu zmieniając to na:
String x = getSubString(1, clob.length());
Pracuje. Wydaje się więc, że nie ma to nic wspólnego z tymczasową alokacją w funkcji lub rozmiarem CLOB. Nie rozumiem, dlaczego nie miałeś problemu z mniejszymi CLOB-ami - może Twoja logika po prostu tego nie uderzyła, jeśli były małe?
W międzyczasie rozwiązałeś ten problem za pomocą clob.getCharacterStream().read()
, więc może to być teraz trochę nieistotne.