2013-08-27 2 views
2

У меня возникла проблема с использованием команды host() в процедуре oracle. Я написал очень простой код оракула.oracle procedure ussing Host() command

CREATE OR REPLACE PROCEDURE 

run_command(command_i IN VARCHAR2) 

IS 
    l_message VARCHAR2 (100); 

BEGIN 

    l_message := 'cmd ' || command_i; 

    host(l_message); 

END run_command; 

когда host(l_message); ликвидировано работает хорошо.

В чем проблема, и есть ли вообще создать рутину, которая использует host()?

ответ

4

Команда HOST доступна только в SQL * Plus, а не в PL/SQL.

Вы можете использовать хранимую процедуру Java для вызова команд вызова ОС. Oracle выпустила white paper о вызове команд ОС внутри PL/SQL назад в 2008 году, но есть много других вещей там (в том числе Oracle Base, что довольно хорошо)

0

Другой неуклюжей, но не Java, как было бы создать DBMS_SCHEDULER ad-hoc EXECUTABLE - это ваша команда HOST (например, ls), а затем выполните задание.

Обратите внимание, что они выполняются на сервере базы данных, а не на удаленном/локальном клиенте.

Смежные вопросы