Как добавить системное время к имени файла в oracle? - PullRequest
0 голосов
/ 06 октября 2009

Я очень новичок в oracle. Мне нужно создать файл с системной отметкой времени от oracle. Пожалуйста, дайте мне знать, как мне это сделать.

Более того, мне нужно записать любые исключения или ошибки, сгенерированные моим pl / sql-кодом, в файл и выйти после ошибки. Как мне это сделать?

Спасибо, Priya.R

Ответы [ 2 ]

2 голосов
/ 06 октября 2009

Похоже, вы хотите взглянуть на пакет Oracle * UTL_FILE , поскольку вы пытаетесь использовать PL / SQL для создания файла.

Вы можете создать файл следующим образом:

(Сначала вам нужно будет создать КАТАЛОГ Oracle, указав расположение операционной системы в файле:

CREATE OR REPLACE DIRECTORY DIR AS 'your OS directory'; 

Обратите внимание, что имя «DIR» используется в следующем примере кода. Вам также потребуется привилегия CREATE DIRECTORY, а затем предоставьте права на чтение и запись в каталоге пользователю, который будет его использовать:

GRANT READ,WRITE ON DIR TO user1;

)

DECLARE
  v_logfile VARCHAR2(100);
  v_FH      UTL_FILE.FILE_TYPE;
BEGIN
  v_logfile := TO_CHAR(SYSDATE,'YYYYMMDD HH24MISS')||'_process.log';
  v_FH      := UTL_FILE.FOPEN(DIR, v_logfile, 'w');
  UTL_FILE.PUTLINE(v_FH, 'Some text on a new line');
  UTL_FILE.FCLOSE(v_FH);
END;
1 голос
/ 06 октября 2009

Вот так вы можете получить динамическое имя файла в SQL Plus

SET TERMOUT OFF

DEFINE dynamic_filename = idle
COLUMN which_dynamic NEW_VALUE dynamic_filename

SELECT   'prefix_'
       ||TO_CHAR( SYSDATE, 'YYYYMMDD' )
       ||'_'
       ||TO_CHAR( SYSDATE, 'HH24MISS' )
       ||'.log'   which_dynamic
  FROM dual;

SET TERMOUT ON

SPOOL &dynamic_filename

SELECT * FROM dual;

SPOOL OFF

Файл создается в каталоге по умолчанию для SQL Plus (в Windows это свойство ярлыка «Начать с:»)

Чтобы поместить вывод в известный каталог, измените команду SPOOL на что-то вроде ...

SPOOL c:\output_dir\&dynamic_filename

Чтобы скрипт SQL Plus завершил работу после ошибки, включите эту команду ...

WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...