SQL*Plus で Oracle データベースにログイン中、OS コマンドを
実行したいことがあると思う。
例えば、スプールしたファイルの内容確認。または、
アーカイブログが出力されたか?とか、タイムスタンプが更新されたか?など。
都度 exit したり、別窓を開けばよい話かもしれないが、作業漏れやミスが
発生しやすくなるリスクに加え、ログを集約する場合に手間がかかって何かと面倒。
そんな時に便利なのが ! 付きの OS コマンド実行。
Oracle では、先頭に ! を打つことで SQL*Plus を使用中に OS コマンドを実行できる。
SQL*Plus を使用中に ls -l コマンドを発行
SQL> !ls -l 合計 36 -rw-r--r-- 1 oracle dba 5181 10月 12日 22:23 init.ora -rw-r----- 1 oracle dba 11796 10月 12日 22:23 spfile.ora
bash やら zsh やらを使用していても、SQL*Plus の使用中は補完機能が効かない。
パスが長い場合、使いづらいという欠点もあるが、重宝するシーンもあるはず。