sql >> Databáze >  >> RDS >> Oracle

Přihlaste výstup DBMS_OUTPUT.Put_Line do tabulky v Oracle pomocí DBMS_OUTPUT.Get_Lines

Dbms_Output.Put_Line je dobrý způsob, jak snadno odlaďte kód PLSQL tím, že vytisknete požadované hodnoty, abyste mohli sledovat, kde se věci dějí špatně. Pokud však chcete tato tisková data zaznamenat do tabulky, abyste je mohli kdykoli analyzovat, můžete to udělat pomocí procedury Dbms_Output.Get_Lines.

Níže je uveden příklad pro protokolování tiskových hodnot Dbms_Output.Put_Line do tabulky v Oracle. Níže je struktura tabulky, která je použita v tomto příkladu s názvem "outputlog", nebo si můžete vytvořit svou vlastní podle svých požadavků.

CREATE TABLE OUTPUTLOG( CHAR_COL VARCHAR2(1000 BYTE), PROCNAME VARCHAR2(100 BYTE), LOG_DATE DATE);A následuje příklad anonymního bloku PLSQL pro protokolování výstupu:DECLARE n NUMBER :=100; vcol DBMS_OUTPUT.chararr;BEGIN DBMS_OUTPUT.enable (100000); --- zde něco udělejte DBMS_OUTPUT.put_line ('první řádek'); --- zde něco udělejte DBMS_OUTPUT.put_line ('druhý řádek'); --- zde něco udělejte DBMS_OUTPUT.put_line ('třetí řádek'); --- získat výstup do pole vcol DBMS_OUTPUT.get_lines (vcol, n); FOR i IN 1 .. n LOOP INSERT INTO outputlog (char_col, procname, log_date) VALUES (vcol (i), 'anonymous', SYSDATE); KONEC SMYČKY; COMMIT;END;Všimněte si, že přiřadím hodnotu proměnné 100 až n a počet výstupních řádků je pouze 3, takže se bude opakovat a zaznamenávat pouze 3krát, protože má na výstupu pouze 3 řádky, ale pokud má výstupní vyrovnávací paměť řádky více než 100 zaznamená pouze 100 řádků, proto odpovídajícím způsobem upravte hodnotu této proměnné.
  1. Kontingenční dotaz Oracle SQL

  2. Postgres COUNT počet hodnot sloupců s INNER JOIN

  3. Jak změním datový typ pro sloupec v MySQL?

  4. Jak formátovat čísla v MariaDB