如何从oracle pl sql过程运行bat文件

如何从oracle pl sql过程运行bat文件,oracle,batch-file,plsql,Oracle,Batch File,Plsql,我在oracle数据库上创建了一个目录: 例如: 现在,我的bat文件放在网络驱动器上,该驱动器是: //ABXD/EFGH 注意:ABXD已装入oracle数据库中 我的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 您可以使用DBMS\u调度程序。有一个很好的解释,让我们看看 简而言

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

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

//ABXD/EFGH
注意:ABXD已装入oracle数据库中

我的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

您可以使用
DBMS\u调度程序
。有一个很好的解释,让我们看看

简而言之:您不能直接运行.BAT文件;先使用envoke 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;

您可以使用
DBMS\u调度程序
。有一个很好的解释,让我们看看

简而言之:您不能直接运行.BAT文件;先使用envoke 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;

不是解决方案,但是:在
pushd//ABXD/EFGH
中,我将
/
更改为
\
,这是Windows路径分隔符…不是解决方案,但是:在
pushd//ABXD/EFGH
中,我将
//code>更改为
\
,这是Windows路径分隔符。。。