首页 > 解决方案 > 如何从我的 oracle pl sql 程序运行 bat 文件

问题描述

我在我的 oracle 数据库上创建了一个目录:示例:

CREATE DIRECTORY execdir AS 'ABXD/EFGH';
grant execute on directory execdir to public;

现在,我的 bat 文件放在网络驱动器上,即:

//ABXD/EFGH

注意:ABXD 已经安装在 oracle 数据库中

我的 bat 文件名如下:sample.bat

bat文件内容:

@echo off
pushd //ABXD/EFGH
FOR /f %%i IN ('dir /o:-d /b') DO (set LAST=%%i)
ren %LAST% data_1.jpg
popd

标签: oraclebatch-fileplsql

解决方案


你可以使用DBMS_SCHEDULER. Oracle 技术网上有一个很好的解释,所以 - 看看。

很快:您不能直接运行 .BAT 文件;首先调用 CMD.EXE,然后让它运行你的 .BAT 文件。

该页面的摘录:

BEGIN
   DBMS_SCHEDULER.create_job ('myjob',
                              job_action            => 'C:\WINDOWS\SYSTEM32\CMD.EXE',
                              number_of_arguments   => 3,
                              job_type              => 'executable',
                              enabled               => FALSE);

   DBMS_SCHEDULER.set_job_argument_value ('myjob', 1, '/q');

   DBMS_SCHEDULER.set_job_argument_value ('myjob', 2, '/c');

   DBMS_SCHEDULER.set_job_argument_value ('myjob', 3, 'c:\temp\test.bat');

   DBMS_SCHEDULER.enable ('myjob');
END;

推荐阅读