我在oracle过程中使用host()
命令时遇到问题。
我编写了非常简单的oracle代码。
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()
的例程?
答案 0 :(得分:6)
HOST命令仅在SQL * Plus中可用,而不在PL / SQL中。
您可以使用Java存储过程来调用OS命令。 Oracle在2008年发布了一个white paper来自PL / SQL内部的OS命令,但还有很多其他东西(包括Oracle Base,这非常好)
答案 1 :(得分:0)
另一种笨重但非Java方式是创建DBMS_SCHEDULER ad-hoc EXECUTABLE作业,这是您的HOST命令(例如ls
),然后执行作业。
请注意,它们在数据库服务器上运行,而不是在远程/本地客户端上运行。