SQL Plusで外部ファイルを実行する方法

SQL Plusのファイル実行について。

この記事の内容はコチラです

  • SQL Plusでファイルを実行する
  • 引数の使い方

今回は、SQL Plusのファイルを実行する方法について紹介します!

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

SQL Plusで外部ファイル(SQLファイル)を実行する方法を解説します。通常パターン、引数ありパターン、SQL Plus起動時の実行パターンの3種類を紹介します。

SQLファイル作成

まずは、SQLの実行ファイルを2種類作成します。1つは単純なINSERT、もう1つはINSERTのデータを引数で渡すファイルです。

ファイルの中身はSQLを記述し、拡張子は「sql」とします。

ファイル1:INSERT文

-- D:\test\emp.sql
-- INSERTを実行する
INSERT INTO emp (emp_no, emp_name, depno) 
VALUES ('A009', '山田太郎', 'TO1');

「d\test」に「emp.sql」というファイル名で保存します。

ファイル2:INSERT文(引数あり)

-- D:\test\emp_para.sql
-- insertを実行する
INSERT INTO emp (emp_no, emp_name, depno) 
VALUES ('&1', '&2', '&3');

「d\test」に「emp_para.sql」というファイル名で保存します。引数は「&1」「&2」「&3」と記述します。

SQL Plusでファイルを実行する

SQL Plusで先ほど作ったファイルを実行してみます。あらかじめSQL Plusを起動しておきます。

-- 構文
@{実行するSQLファイル};

コマンドは「@」のあとに実行する外部ファイル(SQLファイル)を指定するだけです。

さっそく先ほど作成したSQLファイル「emp.sql」を実行します。

-- SQLファイルを実行する 
@d:\test\emp.sql; 

これでSQL Plusでファイル「d\test\emp.sql」を実行できました。

SQL Plusでファイルを実行する(引数あり)

SQL Plusで引数ありのファイルを実行してみます。

-- 引数ありのSQLファイルを実行する 
@d:\test\emp_para.sql 'A009', '山田太郎', 'TO1';

引数を渡す場合は、引数の順番にスペース区切りで記述します。

ここでは3つの引数「’A009’」「’山田太郎’」「’TO1’」をSQLファイル「d\test\emp.sql」に渡しました。SQLファイル「emp.sql」は、この3つの引数を使ってINSERTします。

これでSQL Plusで外部ファイルを実行できました。

SQL Plus起動時にファイルを実行する

次に、SQL Plusの起動するときにファイルを実行してみます。

-- 構文
sqlplus {ユーザー}/{パスワード}@{データベース} @{実行するファイル};

SQL Plusを起動すると同時に先ほど作成したSQLファイル「emp.sql」を実行します。

-- SQLファイルをSQL Plus起動時に実行する
sqlplus usr1/pass1@db1 @d:\test\emp.sql;

「@」のあとに実行する外部ファイル(SQLファイル)を指定します。これでSQL Plus起動時もに外部ファイルを実行することができました。

まとめ

SQL Plusでファイルを実行するコマンドをまとめます。

-- SQLファイルを実行する 
@d:\test\emp.sql; 

-- 引数ありのSQLファイルを実行する
@d:\test\emp_para.sql 'A009', '山田太郎', 'TO1';

-- SQLファイルをSQL Plus起動時に実行する
sqlplus usr1/pass1@db1 @d:\test\emp.sql;

通常パターン、引数ありパターン、SQL Plus起動時の実行パターンの3種類を紹介しました。

SQL*Plusユーザーズ・ガイドおよびリファレンスSQL*Plusでのスクリプトの使用

以上、OracleのSQL Plusで外部ファイル(SQLファイル)を実行する方法でした。

コメント