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

Jak utworzyć plik dziennika w Oracle przy użyciu PL/SQL?

Masz program PL/SQL i chcesz rejestrować informacje o każdym kroku kodu w pliku tekstowym. Oto przykład tworzenia pliku dziennika w Oracle przy użyciu PL/SQL.

Utwórz plik dziennika w Oracle przy użyciu przykładu PL/SQL

Poniżej znajduje się procedura PL/SQL służąca do aktualizacji ceny produktu o wartość procentową przekazaną jako parametr. Ponadto będzie rejestrować informacje o każdym kroku w programie. Pamiętaj, że musisz mieć utworzony obiekt katalogu w Oracle, aby zapisać pliki. Sprawdź ten link, aby dowiedzieć się, jak utworzyć obiekt katalogu w 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;

Przetestuj program

BEGIN
   PROD_PRICE_UPDATE (12);
END;
/

Wyjście pliku dziennika (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

Zobacz też:

  • Zapisuj pliki CSV w Oracle przy użyciu PL/SQL
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kursor:pin S czekaj na X

  2. Darmowy ES dla 11.2.0.4 i 12.2 Data wydania

  3. ORA-01843 nie jest prawidłowym miesiącem- Porównywanie dat

  4. Dzielenie wartości oddzielonych przecinkami w Oracle

  5. Ustawianie strefy czasowej sesji za pomocą wiosennej wyroczni jdbc