oracle - 如何从我的 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
解决方案
你可以使用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;
推荐阅读
- python - 使用日期/日期时间无法使用 Pandas 创建新系列
- flutter - 为什么 ModalRoute 返回 null?
- admob - 很长一段时间后,admob 横幅从未开始显示。只有测试横幅有效
- reactjs - 内容安全策略指令块动态加载的内联脚本
- r - 使用 ggplot 在保持抖动的同时更改组内点的颜色
- c++ - 使用协程从 epoll_wait 处理事件的多线程
- python - 如何在某些字段中聚合具有相同值的多个对象?
- javascript - 如何在 jquery 中动态添加的按钮上创建工作按钮?
- python - 如何组织python文件,让导入不报ImportError:?
- twig - Twig Number Format 将 double 转换为 int