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.