私は Solaris 環境で作業しており、使用している DB は Oracle 10g です。
私が試みているもののスケルトン。
以下を実行する ksh スクリプトを作成します。SQLクエリをシェルスクリプトに含めてステートメントをループする方法がわかりません。したがって、私が試みていることの概要を以下に示します。
処理するファイルをコピーします (フォルダー内の 10 ファイルのリストから一度に 1 ファイル)。
for i in * do cp $i /home/temp を実行します
2. スナップショット(n) テーブルを作成します: n = 1 を初期化します
create table test insert account_no, balance from
records_all;
-- スナップショット テーブルを作成し、SQL にレコードを挿入します
- テーブルが正常に作成されたかどうかの確認:
select count(*) from snapshot1 -- テーブル内のレコード数を照会します -- 常に固定、たとえば 400000
if( select count(*) from snapshot(n) = 400000 )
echo " table creation successful.. proceed to the next step "
else
echo " problem creating table, exiting the script .. "
テーブルの作成に成功すると、
echo " select max(value) from results_all " -- 最大値をコンソールに出力
次のジョブを使用してファイルを処理します。
./runscript.ksh - READ -i $m( m - 初期値 001 )
./runscript.ksh - WRITE -i $m( m - 初期値 001 -- READ process_id と同じ )
-- m を 1 ずつ増やします
成功ログを待つ
テール -f ログ ($m)* | -egrep "^成功"
step1 to へのループ: ファイル 2 を一時フォルダーにコピーします。スナップショット (n+1) テーブルを作成する
すべてのファイルが処理のためにコピーされたら終了します。
done -- ステップ 1 の終了
私を動かすための指針は非常に価値があります。
ありがとう、
クリス