В коментар казахте:
Документацията на getSubString
заявява, че:
С проста функция за генериране и връщане на CLOB, мога да го извлека през JDBC (ojdbc5 или ojdbc6 ) без проблеми, нито с getCLOB() или getString() . Но ако се опитам да присвоя Oracle.sql.CLOB извлечено с getCLOB към String използвайки
String x = getSubString(0, clob.length());
след това получавам и Invalid argument(s) in call грешка. Просто променям това на:
String x = getSubString(1, clob.length());
върши работа. Така че изглежда няма нищо общо с временното разпределение във функцията или размера на CLOB. Не разбирам защо не сте имали проблем с по-малките CLOB - може би логиката ви просто не е улучила това, ако са били малки?
Междувременно заобиколихте това с clob.getCharacterStream().read() , така че това може да е малко без значение сега.