Top > SQL*Plus > START

スクリプトを実行する

START や @、@@ などは指定したスクリプトを実行するためのコマンド

START コマンド

START コマンドの構文

START ファイル名[.拡張子] [引数1 [ 引数2...]]

短縮形

STA ファイル名[.拡張子] [引数1 [ 引数2...]]

ファイル名には絶対パス、カレントワークディレクトリからの相対パスを含めることが可能
拡張子のデフォルトは .sql
複数の引数(パラメータ)を用いる場合にはスペース区切り

START と同じ機能をする @、@@、@? コマンド

@ コマンドは START コマンドのエイリアスとして機能する。@@、@? コマンドは @ コマンドにファイル探索パスの追加が施されている。

@ コマンド

@ コマンドの構文

@ファイル名[.拡張子] [引数1 [ 引数2...]]

アットマーク(@)とファイル名の間にスペースは記述しない。引数はスペース区切りで並べる。

SQL> @atmark.sql param1 param2 ....
SQL>

スクリプトファイルの探索順

  • 作業中のディレクトリ/ファイル名.sql
  • SQLPATH 環境変数 の指定の順番/ファイル名.sql

の順序でファイルの探索が行なわれる。

@@ コマンド

@@ コマンドも @コマンドと同じ構文。
@ コマンドと異なる点はパス名を含まないファイル名の場合にのみ「呼び出し元のスクリプトのパス」が補完される。
ファイル名に相対パス(./ でも)を含むと @ コマンドと同じファイル探索方法となり
SP2-0310: ファイル"xxxx"をオープンできません。のエラーになる。(マニュアルに詳細説明がないので憶測)

つまり、@@ドット(.)/ファイル名.sql による相対パス表記を含むスクリプトの実行は

  • 作業中のディレクトリ/ファイル名.sql
  • SQLPATH の指定の順番/ファイル名.sql

の順序でファイルの探索のみが行なわれ 実行スクリプトのあるディレクトリ/ファイル名.sql の探索は行なわれない。

@? コマンド

@? コマンドは探索パスを $ORACLE_HOME だけにし、他(作業ディレクトリ含む)は全て無効にする。(マニュアル記載がないので憶測)



START 関連 システム変数

  • SUFFIX システム変数 拡張子(.sql) の変更
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)