Oracle10g в Unix-машине
У меня есть требование выполнить команду unix в процедуре, как я могу это сделать?
Oracle10g в Unix-машине
У меня есть требование выполнить команду unix в процедуре, как я могу это сделать?
Вы можете использовать пакет DBMS_SCHEDULER. от Оракула. Для этого также существует набор пакетов с открытым исходным кодом. Вы можете найти их здесь.
Если вам недостаточно DBMS_SCHEDULER и вам нужно запускать команды в контексте другого кода PL/SQL, вам нужно заглянуть в вызов внешних процедур.
Я просто хочу рассказать об альтернативном подходе к вызову команд операционной системы. В этом подходе настраивается простой интерфейс веб-сервиса для вызова команд ОС из SQL или PL/SQL. Подробности об этом подходе можно найти здесь:
Выполнить команду операционной системы (ОС) в Oracle PL /SQL: подход с использованием веб-служб
Используя этот подход, здесь также приводится пошаговое описание того, как вызвать SQL*Loader из SQL:
Запустите Oracle SQL-Loader из SQL или PL/SQL
Обратите внимание, что в приведенном выше подходе веб-сервис определен на Python. Python поставляется с предустановленным большинством распространенных дистрибутивов Linux (включая Oracle Linux), однако, если вы работаете на платформе Windows, вам может потребоваться установить Python 2.7.3.