使用 DBMS_SCHEDULER執行外部命令
使用
DBMS_SCHEDULER可以很方便的執行作業系統下的命令或指令碼,這樣在執行一些定時指令碼時就不需要依賴於作業系統的計劃任務或crontab了。如下,建立定時執行exp匯出的定時任務:
一。建立job
一。建立job
1.建立job,執行定時exp匯出
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'JOB_EXP_XJNY_CHARISMA',
job_type => 'EXECUTABLE',
job_action => 'C:\oracle\product\11.2.0\dbhome_1\bin\exp xjny/xjny tables=at_naizan file=C:\工作相關\資料匯入\at_naizan.dmp',
start_date => SYSDATE,
-- repeat_interval => 'FREQ = DAILY; INTERVAL = 1');
repeat_interval => 'FREQ = MINUTELY; INTERVAL = 3');
END;
/
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'JOB_EXP_XJNY_CHARISMA',
job_type => 'EXECUTABLE',
job_action => 'C:\oracle\product\11.2.0\dbhome_1\bin\exp xjny/xjny tables=at_naizan file=C:\工作相關\資料匯入\at_naizan.dmp',
start_date => SYSDATE,
-- repeat_interval => 'FREQ = DAILY; INTERVAL = 1');
repeat_interval => 'FREQ = MINUTELY; INTERVAL = 3');
END;
/
2. 建立job後,需要啟用該job
BEGIN
DBMS_SCHEDULER.ENABLE ('JOB_EXP_XJNY_CHARISMA');
END;
/
BEGIN
DBMS_SCHEDULER.ENABLE ('JOB_EXP_XJNY_CHARISMA');
END;
/
3.禁用job
BEGIN
DBMS_SCHEDULER.DISABLE ('JOB_EXP_XJNY_CHARISMA');
END;
/
END;
/
4.刪除job
BEGIN
DBMS_SCHEDULER.DROP_JOB('JOB_EXP_XJNY_CHARISMA');
END;
/
BEGIN
DBMS_SCHEDULER.DROP_JOB('JOB_EXP_XJNY_CHARISMA');
END;
/
二 .檢視scheduler job的執行日誌
select OWNER,JOB_NAME,ENABLED,JOB_ACTION,RUN_COUNT,LAST_START_DATE,NEXT_RUN_DATE
from dba_SCHEDULER_JOBs
where job_name='JOB_EXP_XJNY_CHARISMA';
from dba_SCHEDULER_JOBs
where job_name='JOB_EXP_XJNY_CHARISMA';
SELECT OWNER,JOB_NAME,LOG_DATE,OPERATION,STATUS,USER_NAME
FROM DBA_SCHEDULER_JOB_LOG WHERE JOB_NAME='JOB_EXP_XJNY_CHARISMA';
FROM DBA_SCHEDULER_JOB_LOG WHERE JOB_NAME='JOB_EXP_XJNY_CHARISMA';
select * from DBA_SCHEDULER_JOB_RUN_DETAILS WHERE JOB_NAME = 'JOB_EXP_XJNY_CHARISMA';
在windows下需要開啟OracleJobSchedulerSID的服務才能成功執行相應的job,否則報27370錯誤,如下:
"ORA-27370: 作業的從屬程式無法啟動型別為 EXECUTABLE 的作業
ORA-27300: 作業系統系統相關操作: accessing job scheduler service 失敗, 狀態為: 2
ORA-27301: 作業系統故障訊息: 系統找不到指定的檔案。
ORA-27302: 錯誤發生在: sjsec 6a
ORA-27303: 附加資訊: 系統找不到指定的檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10972173/viewspace-722443/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- perl中如何執行外部命令
- R1-005 Shell外部命令執行過程
- 在PHP中以root身份執行外部命令(轉)PHP
- cmd執行命令時:不是內部或外部命令,也不是可執行的程式
- 預設dbms_scheduler job 選擇在哪個節點執行
- 如何從 Vim 中訪問 shell 或者執行外部命令
- PHP新用法,PHP執行系統外部命令篇(轉)PHP
- 使用oracle dbms_scheduler代替crontabOracle
- 通過dbms_scheduler執行一個外部job時出現錯誤
- ‘cnpm' 不是內部或外部命令,也不是可執行的程式NPM
- 'findstr' 不是內部或外部命令,也不是可執行的程式
- CMD執行提示:不是內部或外部命令,也不是可執行的批處理檔案
- anaconda中執行pip命令顯示不是內部或外部命令
- 'ping' 不是內部或外部命令,也不是可執行的程式
- oracle使用DBMS_SCHEDULER排程作業Oracle
- dbms_scheduler設定job執行報錯 ORA-06553: PLS-306
- 'webpack-dev-server' 不是內部或外部命令,也不是可執行的程式WebdevServer
- conda不是內部或外部命令,也不是可執行的程式解決方案
- pytorch中’tensorboard‘不是內部或外部命令,也不是可執行的程式PyTorchORB
- Oracle DBMS_SCHEDULEROracle
- 禁止JVM執行外部命令Runtime.exec–由ApacheCommonsCollections漏洞引發的思考JVMApache
- ‘javac‘ 不是內部或外部命令,也不是可執行的程式 或批處理檔案。Java
- Win10提示python不是內部或外部命令怎麼回事 win10執行python提示不是內部或外部命令如何解決Win10Python
- 使用DBMS_JOB和DBMS_SCHEDULER建立、管理job示例
- 使用 systemd 執行 Horizon
- 使用StoryBoard執行動畫動畫
- 多執行緒使用執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- 執行 kratos 一直沒這個命令,提示 'kratos' 不是內部或外部命令,也不是可執行的程式,需要配置go-binGo
- cmake的使用(cmake不是內部或外部命令)
- win10出現ls不是內部或外部命令也不是可執行怎麼恢復Win10
- 'telnet' 不是內部或外部命令,也不是可執行的程式 或批處理檔案。
- 菜鳥調錯(七)——控制檯中執行mvn命令後提示‘cmd’不是內部或外部命令
- java執行緒之守護執行緒和使用者執行緒Java執行緒
- Golang 使用執行命令帶管道符執行的方法Golang
- java多執行緒之執行緒的基本使用Java執行緒
- 多執行緒-執行緒組的概述和使用執行緒
- 多執行緒-執行緒池的概述和使用執行緒