SQL*Plus > HOST

システムコマンド(OSコマンド)を実行する

HOST はオペレーティングシステムの実行モジュール呼び出すためのコマンド

HOST コマンド

HOST コマンドの構文

HOST [command]

短縮形

HO [command]

コマンドを指定しない場合にはシェル、または、コマンドプロンプトが単独で実行される。

OS 依存の短縮形

HO 以外の短縮形に UNIX 系では エクスクラメーション(!) 、Windows では ドルマーク($) を使用できる。! と $ マークの場合にはコマンドの直後のスペースは無くても良い(例:!ls 、$dir など)。しかし、プラットフォームで異なる短縮形を持つ文字はスクリプトで使用しない方がよいだろう。

(注意) HOST コマンドは SQL*Plus から新しいプロセスで実行される。
例えば host cd /tmp/hoge/ などを実行しても呼び出し元の SQL*Plus の作業ディレクトリは変化しない。

SQL*Plus から Windows のコマンドを実行する

host ($) コマンド

SQL> $ dir | sort | more
               2 個のファイル               9,493 バイト
              66 個のディレクトリ   3,703,697,408 バイトの空き領域
 C:\oracle\product\10.2.0\db_1 のディレクトリ
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は A818-F405 です
2006/04/05  00:10                43 install.platform
2006/04/05  00:10    <DIR>          admin
2006/04/05  00:10    <DIR>          assistants
.....
SQL>

SQL*Plus から Linux のコマンドを実行する

host (!) コマンド

SQL> ! vi /tmp/sqlplus_test.txt
... エディタが起動
... 終了するまで、プロンプトは戻らない
... エディタを終了
SQL>

実行するコマンドをデータベースから取得する

SQL> column cmd new_value cmd_text noprint
SQL> select 'dir c:\' cmd from dual;
 
SQL> host &cmd_text
 ドライブ C のボリューム ラベルがありません。
 .....
 
SQL> $ &cmd_text   -- UNIX 系の ! では未確認
 ドライブ C のボリューム ラベルがありません。
 .....


日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)