DDLとDMLを含む複数の.sqlファイルがあります。
1)1セットのファイルには、以下のようにDDL(テーブルの作成...)、DML(Merge into ....)、そして再びDDL(テーブルの削除...)が続きます。
CREATE TABLE T1 (col1 ...);
Merge into T2 using T1.....;
Drop table T1;
2)2番目のセットでは、上記のパターンの複数の繰り返しが次のようになります。
CREATE TABLE T1 (col1 ...);
Merge into T2 using T1.....;
CREATE TABLE T3 (col1 ...);
Merge into T4 using T1 and T3.....;
Drop table T1;
Drop table T3;
各ソースファイルから2つのファイルを作成する必要があります。1つはすべてのDDLを使用し、もう1つはすべてのDMLを使用します。最初にCREATEとセミコロンの間を検索してDDLファイルに直接送信し、次にマージとセミコロンの間を検索してDMLファイルに直接検索し、最後にドロップとセミコロンの間を検索して上記のDDLファイルに追加しようとしました。
sed -n '/CREATE/,/;/p' $SRCFILE > $TGTDDLFILE
sed -n '/Merge/,/;/p' $SRCFILE > $TGTDMLFILE
sed -n '/Drop/,/;/p' $SRCFILE >> $TGTDDLFILE
セット1では機能しますが、セット2では機能しません。セット2もカバーするように、すべてのオカレンスに適用するようにスケーリングする方法はありますか。そうでない場合、他の方法はありますか?
あなたの助けに感謝。ありがとう