PR

Oracle Database sqlplusからSQLスクリプトファイルを読み込んで実行する方法

スポンサーリンク
Linux

sqlplusを使って、SQLスクリプトファイルを読み込んでSQLを実行する方法を紹介します。

SQLファイルに書くSQL

以下のSQLを普通にsqlplusで実行すると以下の表示となります。

今回はセッション内でdate型のフォーマットを変換してみます。

[dekien@oel77 ~]$ sqlplus dekien
パスワードを入力してください:

SQL> select sysdate from dual;

SYSDATE
---------
07-MAR-20

SQL> alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2020/03/07 23:19:54

SQLスクリプトファイルの用意

上記で実行した3つSQLをSQLファイルに書き込みます。

[dekien@oel77 ~]$ vi script.sql
------
select sysdate from dual;
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
select sysdate from dual;
exit
------

sqlplus上でSQLスクリプトファイルを読み込んで実行

@に続けてSQLスクリプトファイルを指定すれば実行することが出来ます。

[dekien@oel77 ~]$ sqlplus dekien
パスワードを入力してください:

SQL> @script.sql

SYSDATE
---------
07-MAR-20


Session altered.


SYSDATE
-------------------
2020/03/07 23:25:10

拡張子を.sqlにしておけば、拡張子を省いてSQLを実行することも可能です。

SQL> @script

SYSDATE
---------
07-MAR-20


Session altered.


SYSDATE
-------------------
2020/03/07 23:25:43

sqlplusコマンドラインからSQLスクリプトファイルを実行

sqlplusの引数に@付きでSQLスクリプトファイルを指定して実行します。

今回付与している-SオプションはSQL*Plusのバナーを非表示にするオプションです。

[dekien@oel77 ~]$ sqlplus -S dekien @script.sql

SYSDATE
---------
07-MAR-20


Session altered.


SYSDATE
-------------------
2020/03/07 23:42:47

[dekien@oel77 ~]$