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

Popular posts from this blog

image - ClassNotFoundException when add a prebuilt apk into system.img in android -

I need to import mysql 5.1 to 5.5? -

Java, Hibernate, MySQL - store UTC date-time -