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 の使用中は補完機能が効かない。
パスが長い場合、使いづらいという欠点もあるが、重宝するシーンもあるはず。

関連記事