oracle - SQL UPDATE using BASH loop -
we changed usernames in our application there history etc. in database needs updated. there file update_users.list
has old username , new username separated space, 2 user names per line.
would below script correct, or there noticeable issues it?
#!/bin/bash cat update_users.list | while read old_user new_user sqlplus -s $user/$pass@$db > user_output.log <<eof update auf_kopf set kopf_sach = '%${new_user}%' kopf_sach = '%${old_user}%'; update auf_prot set sach_bearb = '%${new_user}%' sach_bearb = '%${old_user}%'; update auf_prot_hint set sach_bearb = '%${new_user}%' sach_bearb = '%${old_user}%'; update ordhist set user_code = '%${new_user}%' user_code = '%${old_user}%'; update liefer_daten set sach_bearb = '%${new_user}%' sach_bearb = '%${old_user}%'; update shipment_head set shipment_sach = '%${new_user}%' shipment_sach = '%${old_user}%'; update lager_bew set lb_sachbearb = '%${new_user}%' lb_sachbearb = '%${old_user}%'; update lager_abzu set abzu_sachbearb = '%${new_user}%' abzu_sachbearb = '%${old_user}%'; update best_kopf set best_sach = '%${new_user}%' best_sach = '%${old_user}%'; update rcpt_header set user_name = '%${new_user}%' user_name = '%${old_user}%'; update stat_kopf set st_kopf_sach = '%${new_user}%' st_kopf_sach = '%${old_user}%'; update stat_mod set stat_user = '%${new_user}%' stat_user = '%${old_user}%'; / exit eof
i'd write input sql-scriptfile first , execute it:
awk '{print "update table usertable set col=" $2 " col=" $1 ";"}' <input >script.sql; echo "/" >>script.sql; sqlplus user/pass @script.sql;
Comments
Post a Comment