タスク起動系のコマンドとその挙動について
コマンド HOST タイプ SQL*Plus 挙動 処理が終わるまで呼び出し元は停止する 参考 PL/SQL内では使用不可、DOSの環境変数が使えない? コマンド CALL タイプ DOS 挙動 処理が終わるまで呼び出し元は停止する 参考 コマンド START タイプ DOS 挙動 処理はすぐに呼び出し元に戻されるが、/WAITを付ければCALLと同じ動きになる 参考 新プロセスを開きコマンドを実行
WSHによるタスクについて
- DOSコマンドを起動する(同期)
Set wShell = CreateObject("WScript.Shell") Set oExec = wShell.Exec("cmd.exe /c sample 10 > .\red_network.txt") MsgBox oExec.StdOut.ReadAll()
- DOSコマンドを起動する(非同期)
Set wShell = CreateObject("WScript.Shell") wShell.Run "cmd /c dir > .\test.log"
タスクの一時停止について
DOSの場合、一時停止する方法が無い為、VBScriptを使用する
sleep.bat
echo off REM Sleep.bat [秒数] set /a wtime=(%1+0)*1000 echo WScript.Sleep %wtime% > tmp.vbs cscript //NoLogo tmp.vbs del tmp.vbs set wtime=
PL/SQLの場合次のパッケージを使用する
DBMS_LOCK.SLEEP(300);
SQL*Plusを使用したデータの取得
変数&t_dayにシステム日付を代入する。
column tday new_value t_day select to_char(sysdate, 'yyyymmdd') as tday from dual; SQL> select'&t_day' "今日" from dual; 旧 1: select'&t_day' "今日" from dual 新 1: select'20050708' "今日" from dual 今日 -------- 20050708 SQL>