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

Czy istnieje sposób na opróżnienie danych wyjściowych z PL/SQL w Oracle?

Nie bardzo. Sposób działania DBMS_OUTPUT jest następujący:Twój blok PL/SQL jest wykonywany na serwerze bazy danych bez interakcji z klientem. Więc kiedy wywołujesz PUT_LINE, to po prostu umieszczasz ten tekst w buforze w pamięci na serwerze. Kiedy twój blok PL/SQL zakończy się, kontrola jest zwracana do klienta (w tym przypadku zakładam SQLPlus); w tym momencie klient pobiera tekst z bufora przez wywołanie GET_LINE i wyświetla go.

Tak więc jedynym sposobem, aby dane wyjściowe pojawiały się w pliku dziennika częściej, jest rozbicie dużego bloku PL/SQL na wiele mniejszych bloków, dzięki czemu kontrola jest częściej zwracana do klienta. Może to nie być praktyczne w zależności od tego, co robi Twój kod.

Inne alternatywy to użycie UTL_FILE do zapisywania do pliku tekstowego, który można opróżnić w dowolnym momencie, lub użycie procedury autonomicznej transakcji do wstawienia instrukcji debugowania do tabeli bazy danych i zatwierdzenia po każdej z nich.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uciekanie znaków kontrolnych w Oracle XDB

  2. Uzyskaj dostęp do usługi sieciowej z procedury składowanej Oracle

  3. Jak korzystać z adresu URL tłumaczenia Google w Oracle plsql

  4. Funkcja Oracle REPLACE() nie obsługuje powrotu karetki i wysuwu wiersza

  5. PLS-00428:w tej instrukcji SELECT oczekiwana jest klauzula INTO