Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak zwrócić tymczasową instancję CLOB z funkcji przechowywanej w Pl/SQL?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównania Oracle NUMBER

  2. Kolumna obcinania Oracle

  3. Błąd logowania Sqlplus podczas używania zmiennych bash:SP2-0306:Nieprawidłowa opcja

  4. Wprowadzenie do zbiorczego zbierania danych PL/SQL w bazie danych Oracle

  5. Jak zoptymalizować zapytanie Oracle, które ma to_char w klauzuli where dla daty?