Поместить событие в журнал событий Windows из Oracle - PullRequest
1 голос
/ 15 мая 2019

Я пытаюсь поместить событие в журнал событий Windows из Oracle DBMS_SCHEDULER.

(я открыт для других методов, из того, что я прочитал, похоже, что DBMS_SCHEDULER - лучший вариант для этого.)

Я провел немало исследований, и это, кажется, основная структура для запуска команд Windows в Oracle:

BEGIN
sys.dbms_scheduler.create_job( 
   job_name            => 'TESTJOB',
   job_type            => 'EXECUTABLE',
   job_action          => 'C:\Windows\System32\cmd.exe',
   job_class           => 'DEFAULT_JOB_CLASS',
   number_of_arguments => 3,
   auto_drop           => FALSE,
   enabled             => FALSE);
sys.dbms_scheduler.set_job_argument_value('TESTJOB', 1, '/q'); 
sys.dbms_scheduler.set_job_argument_value('TESTJOB', 2, '/c');
sys.dbms_scheduler.set_job_argument_value('TESTJOB', 3, '<desired command>');
sys.dbms_scheduler.enable('TESTJOB');
END;

Я попытался заменить <desired command> на:

eventcreate /L Application /SO MyMessage /T Warning /id 218 /D "testing 123"

Однако это привело к следующей ошибке при попытке выполнить задание:

ORA-27369: job of type EXECUTABLE failed with exit code: Incorrect function.

Затем я изменил <desired command> на это просто из любопытства, если он будет работать с другими командами:

dir>testFile.txt

И testFile.txt был создан ... так что кажется, что Oracle допускает некоторые команды, но не другие. Зачем? Есть ли способ обойти это?

Я также попробовал несколько других вещей, например, поместив оператор eventcreate в пакетный файл и затем запустив пакетный файл из Oracle, все та же ошибка.

Следует отметить, что выполнение полной команды "job action" и аргументов с eventcreate непосредственно из командной строки дает желаемый результат.

На данный момент я в значительной степени готов бросить полотенце и просто написать простое приложение на C # или что-то подобное, которое помещает запись в журнал событий Windows и запускает исполняемый файл непосредственно из Oracle, не имея дело с этими командами Windows. .

( РЕДАКТИРОВАТЬ : после публикации вопроса я действительно сделал это, но теперь я сталкиваюсь с другими проблемами. См. этот вопрос .)

Я что-то упустил?

P.S. Даже работающая команда dir>testFile.txt занимает примерно 1 или 2 секунды. Странно, что для выполнения такой основной команды требуется так много времени. Это заставляет меня думать, что здесь что-то в корне не так.

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