Hi All,
I have a piece of code in shell script that reads from a flat file and updates a row in a table. I am updating 1.1 million records at once. My code is committing after every row. Also the process is running for ever. Is there a way I can commit a bunch of records at a time say 500 and then process the next 500. here is my code.
while read TEST_RISK TEST_RISKREN TEST_RISKEND TEST_MARKER
do
echo "Starting Update"
currval=`db2 -x "select ZONE_IND from TEST_TEST_MARKER_TAB where RISK = '$TEST_RISK' \
and RISKREN = '$TEST_RISKREN' \
and RISKEND = '$TEST_RISKEND'"`
errcnt=`db2 -ec +o "update TEST_TEST_MARKER_TAB set ZONE_IND=('$TEST_MARKER') where RISK = '$TEST_RISK' \
and RISKREN = '$TEST_RISKREN' \
and RISKEND = '$TEST_RISKEND'"`
db2 "commit work"
if [ "$errcnt" -ne 0 ];
then
echo "$TEST_RISK $TEST_RISKREN $TEST_RISKEND" >> risk_count.txt
else
echo "insert a entry in journal table for $TEST_RISK $TEST_RISKREN $TEST_RISKEND"
db2 "insert into DB2INST1.test_journals(journalid,risk,riskren,risk end,subsystem,title,body)
values ((next value for DB2INST1.JOURNALIDSEQ), '$TEST_RISK', '$TEST_RISKREN', '$TEST_RISKEND',5,
'THE TEST_MARKER Data Marker value was changed','"THE VALUE OF TEST_MARKER changed from" $currval "to" $TEST_MARKER')"
fi
done < upload.csv
Any suggestions please ..
Thanks
dbsam