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 ~]$