使用 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何從 Vim 中訪問 shell 或者執行外部命令
- oracle使用DBMS_SCHEDULER排程作業Oracle
- ‘cnpm' 不是內部或外部命令,也不是可執行的程式NPM
- anaconda中執行pip命令顯示不是內部或外部命令
- pytorch中’tensorboard‘不是內部或外部命令,也不是可執行的程式PyTorchORB
- conda不是內部或外部命令,也不是可執行的程式解決方案
- Win10提示python不是內部或外部命令怎麼回事 win10執行python提示不是內部或外部命令如何解決Win10Python
- Oracle定時任務dbms_schedulerOracle
- oracle定時任務dbms_job與dbms_scheduler使用方法Oracle
- 'telnet' 不是內部或外部命令,也不是可執行的程式 或批處理檔案。
- win10 telnet不是內部或外部命令 也不是可執行的程式 解決方案Win10
- ‘javac‘ 不是內部或外部命令,也不是可執行的程式 或批處理檔案。Java
- Java多執行緒-執行緒池的使用Java執行緒
- 使用 systemd 執行 Horizon
- 執行 kratos 一直沒這個命令,提示 'kratos' 不是內部或外部命令,也不是可執行的程式,需要配置go-binGo
- oracle排程程式作業dbms_schedulerOracle
- java執行緒之守護執行緒和使用者執行緒Java執行緒
- win10出現ls不是內部或外部命令也不是可執行怎麼恢復Win10
- win10電腦執行telnet命令時提示“telnet不是內部或外部命令”如何解決Win10
- Golang 使用執行命令帶管道符執行的方法Golang
- java多執行緒之執行緒的基本使用Java執行緒
- .net使用Task多執行緒執行任務 .net限制執行緒數量執行緒
- 使用普通使用者執行 dockerDocker
- 使用docker執行CentOS容器DockerCentOS
- 使用MapReduce執行WordCount案例
- 執行緒池的使用執行緒
- java使用多執行緒Java執行緒
- Python 執行緒池使用Python執行緒
- 執行緒的基本使用執行緒
- ‘NODE_OPTIONS‘ 不是內部或外部命令,也不是可執行的程式或批處理檔案
- NODE_ENV 不是內部或外部命令,也不是可執行的程式,或者批處理檔案
- 多執行緒:執行緒池理解和使用總結執行緒
- (已解決)'ng' 不是內部或外部命令,也不是可執行的程式或批處理檔案
- springboot配置執行緒池使用多執行緒插入資料Spring Boot執行緒
- 使用委託開啟多執行緒(多執行緒深入)執行緒
- 使用 Rust 執行 Cron 作業Rust
- QT執行緒的使用 moveToThread()QT執行緒thread
- @Async使用ThreadPoolTaskExecutor 多執行緒thread執行緒
- springboot使用執行緒池(ThreadPoolTaskExecutor)Spring Boot執行緒thread