Oracle SQL*Plusで外部ファイル(.sql)を実行する方法

スポンサーリンク

SQL*PlusでSQLを記述した外部ファイルを実行する方法

SQLを記述した外部ファイルをSQL*Plusで実行する方法を解説します。
結論からいうと実行したいファイル名の前に「@」をつけるだけで実行可能です。
今回は以下のフォルダとファイル構成で検証していきます。

フォルダ構成

C:\Temp>tree /f
C:.
    test.sql
    test2.sql

サブフォルダーは存在しません

「test.sql」ファイルの中身

column id format a5
column name format a10
column address format a10
SELECT * FROM animal1;

「test2.sql」ファイルの中身

column id format a5
column name format a10
column address format a10
SELECT * FROM &1;

外部ファイルを実行する記述方法と実行例(引数なしの場合)

引数無しの記述方法

外部ファイルは、SQL*Plusにログインした際のフォルダに配置しましょう。
パスを指定しないでファイル名のみで実行した場合、SQL*Plusでログインした際のフォルダのファイルを参照します。

@<file_name>;

引数無し・パスの指定なしの実行例

「C:\Temp」でSQL*Plusにログインします。

C:\Temp>sqlplus username/password@XE

さて、準備が整いました。実際に実行してみましょう!
大変上手に実行できましたぁ~\(^o^)/

SQL> @test.sql

ID    NAME       ADDRESS
----- ---------- ----------
001   いるか     海
002   うさぎ     陸
003   ぺんぎん   空
004   あざらし   海
005   ふくろう   空

引数無し・パスの指定ありの実行例

「C:\」でSQL*Plusにログインします。

C:\>sqlplus username/password@XE

さて、準備が整いました。実際に実行してみましょう!
先程と違う点は、ログインしているフォルダが「C:\」のため先ほどと同じコマンドを実行しても以下のエラーが発生します。

SQL> @test.sql
SP2-0310: ファイル"test.sql"をオープンできません。

はい!パスを指定してあげるとちゃんと実行されているのがわかりますね。
大変上手に実行できましたぁ~\(^o^)/

SQL> @C:\Temp\test.sql

ID    NAME       ADDRESS
----- ---------- ----------
001   いるか     海
002   うさぎ     陸
003   ぺんぎん   空
004   あざらし   海
005   ふくろう   空

外部ファイルを実行する記述方法と実行例(SQL*Plusの起動と同時に外部ファイルを実行)

SQL*Plusの起動と同時に外部ファイルを実行する記述方法

 splplus user_name/password@<インスタンス名> @<file_name> [<引数1> <引数2> ・・・];

SQL*Plusの起動と同時に外部ファイルの実行例

C:\Temp>sqlplus username/password@XE @test.sql

ID    NAME       ADDRESS
----- ---------- ----------
001   いるか     海
002   うさぎ     陸
003   ぺんぎん   空
004   あざらし   海
005   ふくろう   空

外部ファイルを実行する記述方法と実行例(引数有りの場合)

引数(パラメータ)有りの記述方法

外部ファイルに引数を渡す場合は、ファイル名の後にスペースで区切って渡します。渡した引数は「&1」「&2」・・・で受け取ることができます。

@<file_name> <引数1> <引数2> ・・・;

引数(パラメータ)有り・パス指定無しの実行例

SQL> @test2.sql animal1
旧   1: SELECT * FROM &1
新   1: SELECT * FROM animal1

ID    NAME       ADDRESS
----- ---------- ----------
001   いるか     海
002   うさぎ     陸
003   ぺんぎん   空
004   あざらし   海
005   ふくろう   空

引数(パラメータ)有り・パス指定有りの実行例

SQL> @C:\Temp\test2.sql animal1
旧   1: SELECT * FROM &1
新   1: SELECT * FROM animal1

ID    NAME       ADDRESS
----- ---------- ----------
001   いるか     海
002   うさぎ     陸
003   ぺんぎん   空
004   あざらし   海
005   ふくろう   空

コメント

タイトルとURLをコピーしました