ORACLEへの接続を簡易的に実行できるバッチファイルについて記載。
以下の構成で実行する想定
読み込みたいSQLファイルが配置されているパス
c:\File\sample.sql
BATを実行するパス
c:\File\sql_system@orcl.bat
LOGの出力パス
c:\File\yyyymmdd_hhmm.log
ログの出力先を変数とする必要が無いので、配置して実行することが容易である。
以下のファイルを作成し、実行したいSQLファイルとディレクトリにコピーして、バッチファイルを実行します。
■BASE.SQL
SET ECHO OFF
SET ECHO OFF
-- 時刻を表示
SET TIME ON
SET VERIFY OFF
-- ログの出力先
DEFINE LOG_FILE_PATH ='&1\';
-- 拡張子を指定
DEFINE LOG_FILE_EXT = .log
-- ファイル名を日付+時刻で指定
COLUMN LOG_PATH NEW_VALUE LOG_FILE FORMAT a75
SELECT '&LOG_FILE_PATH' || to_char(sysdate,'yyyymmdd_hh24miss') || '&LOG_FILE_EXT' LOG_PATH FROM DUAL;
-- ログの出力
SPOOL '&LOG_FILE' APPEND
■SQLPLUS_SYSTEM@ORCL.BAT
@echo off
cd /d %~dp0
REM ■実行パス %DIR_CD%
SET DIR_BAT=%CD%
sqlplus system/********@orcl @base.sql %DIR_BAT%