我们可以从Oracle10g的程序执行unix命令(can we execute unix comm

2019-09-17 04:54发布

Oracle10g中的UNIX机器

我在程序执行的Unix命令,要求我该怎么办呢?

Answer 1:

BEGIN
     DBMS_SCHEDULER.create_job(
    job_name        => 'SHELL_JOB',
    repeat_interval  => 'FREQ=DAILY; BYHOUR=2',
    job_type         => 'EXECUTABLE',
    job_action       => '/u01/app/oracle/admin/tools/shell_job.sh',
    enabled          => TRUE,
    comments         => 'Perform stuff'
);
END;


Answer 2:

您可以使用DBMS_SCHEDULER从Oracle软件包。 还有一个开源的这样一个软件包集。 你可以找到那些在这里 。



Answer 3:

如果DBMS_SCHEDULER是不够的,你,你需要运行的其他PL / SQL代码的上下文中的命令,那么你就需要考虑调用外部程序 。



Answer 4:

我想和大家分享有关调用操作系统命令的另一种方法。 在这种方法中一个简单的Web服务接口的设置从SQL或PL / SQL调用OS命令。 有关此方法的详细信息可以在这里找到:

运行操作系统(OS)命令中的Oracle PL / SQL:一个Web服务方法

使用这种方法,在这里也描述了一步一步的说明有关如何从SQL调用SQL * Loader的:

从SQL或PL / SQL运行的Oracle SQL-装载机

请注意,上述方法的网络服务是在Python定义。 Python附带预装了最常见的Linux发行版(包括Oracle Linux的),但是如果你使用的是Windows平台,那么你可能需要安装Python 2.7.3



文章来源: can we execute unix command from oracle10g procedure