使用Host()命令的oracle过程

使用Host()命令的oracle过程,oracle,plsql,oracle11g,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; 当主机时(l_消息)已消除,工作正常

我在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;
当<代码>主机时(l_消息)已消除,工作正常

问题是什么?创建一个使用
host()

的例程是否存在问题?

该命令仅在SQL*Plus中可用,而不是在PL/SQL中可用


您可以使用Java存储过程调用OS命令。早在2008年,Oracle就在PL/SQL内部发布了一个关于调用OS命令的应用程序,但还有很多其他东西(包括,这很好)

另一个笨拙但非Java的方法是创建DBMS_调度器临时可执行作业,这是您的主机命令(例如,
ls
),然后执行该作业


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

Reference:-->此来自PLSQL的操作系统调用不起作用-在Oracle 12c上,其他人不确定。这是一个非常旧的页面@Peter。它建议使用~9年前不推荐使用的软件包。与五年前相比,我更强烈地反对从Oracle调用操作系统