使用Host()命令的oracle过程

时间:2013-08-27 14:43:22

标签: oracle plsql oracle11g

我在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()的例程?

2 个答案:

答案 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),然后执行作业。

请注意,它们在数据库服务器上运行,而不是在远程/本地客户端上运行。