2

host()在 oracle 过程中使用命令时遇到问题。我编写了非常简单的 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()

4

2 回答 2

6

HOST命令仅在 SQL*Plus 中可用,在 PL/SQL 中不可用。

您可以使用 Java 存储过程来调用调用 OS 命令。早在 2008 年, Oracle 就发布了一份关于从 PL/SQL 中调用操作系统命令的白皮书,但还有很多其他的东西(包括Oracle Base,非常好)

于 2013-08-27T14:48:33.950 回答
0

另一种笨拙但非 Java 的方法是创建 DBMS_SCHEDULER ad-hoc EXECUTABLE 作业,这是您的 HOST 命令(例如ls),然后执行该作业。

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

于 2014-06-03T00:11:05.130 回答