Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich eine temporäre CLOB-Instanz von einer gespeicherten Funktion in Pl/SQL zurückgeben?

In einem Kommentar sagten Sie:

Die Dokumentation von getSubString besagt, dass:

Mit einer einfachen Funktion zum Generieren und Zurückgeben eines CLOB kann ich es über JDBC abrufen (ojdbc5 oder ojdbc6 ) ohne Probleme, auch nicht mit getCLOB() oder getString() . Aber wenn ich versuche, die Oracle.sql.CLOB zuzuweisen mit getCLOB abgerufen zu einem String mit

String x = getSubString(0, clob.length());

dann bekomme ich auch die Invalid argument(s) in call Error. Ändern Sie das einfach in:

String x = getSubString(1, clob.length());

funktioniert. Es scheint also nichts mit der temporären Zuweisung in der Funktion oder der CLOB-Größe zu tun zu haben. Ich verstehe nicht, warum Sie kein Problem mit kleineren CLOBs hatten - vielleicht hat Ihre Logik das einfach nicht getroffen, wenn sie klein waren?

Inzwischen haben Sie das mit clob.getCharacterStream().read() umgangen , daher ist dies jetzt vielleicht etwas irrelevant.