Oracle PL/SQL monitor каталог для новых файлов
Я начну с того, что я новичок в работе с Oracle, поэтому, хотя я искал это без удачи, возможно, мне не хватает правильной терминологии.
То, что я пытаюсь сделать, - это использовать базу данных Oracle и PLSQL, чтобы отслеживать указанный каталог и при добавлении нового файла вызывать функцию в базе данных для обработки этого файла. Возможно ли это сделать с помощью PLSQL, если да, то любое руководство о том, где я должен искать, будет очень полезно оцененный.
Сатал
3 ответа:
Если вы используете Oracle 11g, вы можете использовать новую функцию File Watcher в Oracle Scheduler.
Http://docs.oracle.com/cd/E11882_01/server.112/e25494/scheduse005.htm#CIAJIADA
Http://www.oracle-base.com/articles/11g/scheduler-enhancements-11gr2.php#file_watcher
Для просмотра операционной системы требуется утилита ОС. Существует два способа интеграции ОС и базы данных.
Гоните это из ОС
Старый подход skool заключается в написании сценария оболочки, который выполняетls
против целевого каталога и инициирует сеанс SQL*Plus для вызова хранимой процедуры, которая обрабатывает любой найденный файл. Используйтеcron
для регулярного вызова этого скрипта. (Замените Windows-эквиваленты этих программ).Привод из базы данных
Подход nu skool заключается в том, что хранимая процедура запускает все. Нет встроенного Oracle для поиска в каталоге ОС, но это можно сделать с помощью хранимой процедуры Java, которая вызывает исполняемый файл ОС. Модель безопасности Java немного сложна, но эта техника работает очень хорошо. Узнайте больше . Напишите процедуру PL / SQL, чтобы вызвать JSP и обработать файл, если что-то будет найдено. Эта процедура выполняется из DBMS_JOB, который запускается на на регулярной основе.Вариант этого подхода, доступный начиная с 10g, заключается в использовании DBMS_SCHEDULER. Мы можем создатьзадание, которое выполняет команду ОС исвязать его с другим заданием , чтобы обработать файл, если первое задание найдет что-нибудь.
Взгляните на utl_file package
Также посмотреть на этого вопрос AskTom