私はp.txtという名前のファイルが1つあります。 これは、値が次のものが含まれます。特定の長さのバッチでUNIXからファイルを読み込みます
201601
201602
201603
201604
201605
201606
201607
201608
201609
201610
私は 一つの変数は、最初の反復における三つの値
201601
201602
201603
以下になります。3.すなわちのバッチで、このレコードを読みたいです。 2回目の繰り返しでは、次の3行が表示されます
201604
201605
201606
数値が3で完全に除算されていない場合は、繰り返しは分割数+1になります。
どのようにUNIXで可能ですか?私がこれまで試してみました何
:
PERD=`cat P.txt`
for perd in `cat PERD_ID.txt`;
do
bteq << EOF
.logon ${conn_string};
/* Database*/
DATABASE $ET;
/* Update NULL LOCL_SEGMNT3_IDNs*/
INSERT INTO T
SELECT *
FROM A
WHERE PERIOD IN ($PERD);
.if errorcode != 0 then .exit 5.1;
.LOGOFF
.EXIT
EOF
done
現在のコードは、すべての行を読み取り、DBに挿入を実行します。私はより良いパフォーマンスのために3つの期間これらのクエリをしたい。
/* Update NULL LOCL_SEGMNT3_IDNs*/
INSERT INTO T
SELECT *
FROM A
WHERE PERIOD IN (201601,201602,201603);
3で割り切れるとうまくいきますが、そうでなければ失敗しています(201601 ,,)。 –
3つのグループの行を処理したいとします。最後のグループに2つまたは1つの項目しかない場合は、必要な方法で処理します。たとえば、 "if"ステートメント。 – quantummind