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

Loguj dane wyjściowe DBMS_OUTPUT.Put_Line do tabeli w Oracle za pomocą DBMS_OUTPUT.Get_Lines

Dbms_Output.Put_Line to dobry sposób na łatwe debugowanie kodu PLSQL poprzez wydrukowanie wymaganych wartości, aby śledzić, gdzie coś idzie nie tak. Ale jeśli chcesz zapisać te dane wydruku do tabeli, aby je przeanalizować w dowolnym momencie, możesz to zrobić za pomocą procedury Dbms_Output.Get_Lines.

Poniżej podano przykład rejestrowania wartości wydruku Dbms_Output.Put_Line w tabeli w Oracle. Poniżej znajduje się struktura tabeli używanej w tym przykładzie o nazwie „outputlog” lub możesz utworzyć własną zgodnie z wymaganiami.

CREATE TABLE OUTPUTLOG ( CHAR_COL VARCHAR2 (1000 BYTE), PROCNAME VARCHAR2 (100 BYTE), LOG_DATE DATE); A poniżej znajduje się przykład anonimowego bloku PLSQL do rejestrowania danych wyjściowych:DECLARE n NUMBER :=100; vcol DBMS_OUTPUT.chararr;BEGIN DBMS_OUTPUT.enable (100000); --- zrób coś tutaj DBMS_OUTPUT.put_line ('pierwsza linia'); --- zrób coś tutaj DBMS_OUTPUT.put_line ('druga linia'); --- zrób coś tutaj DBMS_OUTPUT.put_line ('trzecia linia'); --- pobierz dane wyjściowe do tablicy vcol DBMS_OUTPUT.get_lines (vcol, n); FOR i IN 1 .. n LOOP INSERT INTO (char_col, procname, log_data) WARTOŚCI (vcol (i), 'anonimowy', SYSDATE); PĘTLA KOŃCOWA; COMMIT;END;Uwaga:przypisuję wartość zmiennej 100 do n, a liczba wierszy wyjściowych to tylko 3, więc zapętli się i zarejestruje tylko 3 razy, ponieważ ma tylko 3 wiersze na wyjściu, ale jeśli bufor wyjściowy ma wiersze więcej niż 100, niż zarejestruje tylko 100 wierszy, więc odpowiednio dostosuj tę wartość zmiennej.
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przeliterować rok podczas formatowania daty w Oracle

  2. Wyszukaj, czy liczba jest zawarta w wyrażeniu takim jak:1-3,5,10-15,20

  3. Co to jest sekwencja w wyroczni?

  4. Wybierz drugą najbardziej minimalną wartość w Oracle

  5. Jak wyjść ze skryptu w SQLPlus, gdy wystąpi błąd i powrócić do monitu SQLPlus, bez rozłączania się lub zamykania SQLPlus?