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

Jak vytvořit soubor protokolu v Oracle pomocí PL/SQL?

Máte program PL/SQL a chcete zaznamenávat informace do textového souboru každého kroku vašeho kódu. Zde je příklad vytvoření souboru protokolu v Oracle pomocí PL/SQL.

Vytvoření souboru protokolu v Oracle pomocí příkladu PL/SQL

Následuje postup PL/SQL pro aktualizaci ceny produktu o procentuální hodnotu předávanou jako parametr. Také zaznamená informace o každém kroku, který se děje v programu. Poznámka:Chcete-li zapisovat soubory, musíte mít vytvořený objekt adresáře v Oracle. Podívejte se na tento odkaz, kde se dozvíte, jak vytvořit objekt adresáře v Oracle.

CREATE OR REPLACE PROCEDURE prod_price_update (increase_pct IN NUMBER)
IS
   f_file        UTL_FILE.file_type;
   v_file_name   VARCHAR2 (100);
BEGIN
   v_file_name := 'log_' || TO_CHAR (SYSDATE, 'yyyymmdd_HH24miss') || '.log';
   f_file := UTL_FILE.fopen ('LOG_FILES', v_file_name, 'w');
   UTL_FILE.put_line (f_file, 'Log file ' || v_file_name);
   UTL_FILE.new_line (f_file);
   UTL_FILE.put_line (
      f_file,
      'Job started at: ' || TO_CHAR (SYSDATE, 'dd-mm-yyyy HH24:mi:ss'));
   UTL_FILE.put_line (
      f_file,
      'Price increment percentage value: ' || increase_pct || '%');

   UPDATE products
      SET prod_list_price =
             prod_list_price + (prod_list_price * increase_pct / 100);

   UTL_FILE.put_line (f_file,
                      'Number of products updated:  ' || SQL%ROWCOUNT);

   COMMIT;
   UTL_FILE.put_line (f_file, 'Records committed.');
   UTL_FILE.put_line (
      f_file,
      'Job finished successfully at: '
      || TO_CHAR (SYSDATE, 'dd-mm-yyyy HH24:mi:ss'));
   UTL_FILE.fclose (f_file);
EXCEPTION
   WHEN OTHERS
   THEN
      IF UTL_FILE.is_open (f_file)
      THEN
         UTL_FILE.put_line (f_file, 'Job finished with errors: ' || SQLERRM);
         UTL_FILE.fclose (f_file);
      END IF;
END;

Otestujte program

BEGIN
   PROD_PRICE_UPDATE (12);
END;
/

Výstup souboru protokolu (log_20180919_214756.log)

Log file log_20180919_214756.log

Job started at: 19-09-2018 21:47:56
Price increment percentage value: 12%
Number of products updated:  72
Records committed.
Job finished successfully at: 19-09-2018 21:47:57

Viz také:

  • Zapisujte soubory CSV v Oracle pomocí PL/SQL
  1. Najděte hodnotu kdekoli v databázi

  2. Jak ušetřím vyhrazená slova použitá jako názvy sloupců? MySQL/Vytvořit tabulku

  3. Microsoft SQL Server 2005/2008:datový typ XML vs text/varchar

  4. Drag and Drop v MS Access a podmíněné třídění