Cygwin + SQL*Plus によるデータ登録シェルスクリプト
業務で大量のテストデータを登録する必要が有ったので、いつもならUnix上で実行するスクリプトを少し修正したらCygwin上でも動作したので備忘録として整理しておきます。
#!/bin/csh set USERNAME=<ユーザ名> set PASSWORD=<パスワード> set START=<開始カウント 例:1> set STOP=<終了カウント 例:1001 <= 終了させたい数より1つ多くする> set SQLPLUS=# 指定された回数分、ループを実施 while ( ${START}<${STOP} ) # カウンターの加工例として10桁として0パディングを実施 set COUNT=`echo $START | awk '{ printf "%010d", $1 }'` echo ${COUNT} # SQL*Plusをサイレントモードで起動し、『EOF』までの記述をSQL文として実行 # ここのSQL文は任意なものに置換える # 以下の例では5つのカラムの全てにカウンターの値を挿入しています ${SQLPLUS} -s ${USERNAME}/${PASSWORD}<< EOF set feedback off; set echo off; set flush off; set head off; insert into SampleTable values ( '${COUNT}', '${COUNT}', '${COUNT}', '${COUNT}', '${COUNT}'); EOF # カウンターを更新 @ START++ # ループエンド end # 一応、正常終了として0を戻す exit 0
SQLPLUS変数のところを差し替えれば、Unix上でも動作するので早めにこの手のシェルを用意しておけば良かったです〜。(^^;