生产环境中遇到更新或者删除大批量数据的时候,不能直接进行操作,要批量进行。
1 获取要进行更新的数据的主键,保存为文本文件或者csv文件。这一步一定要正确,否则下面的操作会造成更新错误的数据,造成数据不一致!
2 创建临时表并将获取的数据主键导入到创建!
#!/bin/sh
# Created by yangql on 2011-11-23
# Parameters
## . /home/oracle/.profile
ORA_USER=yang
ORA_PASSWD=yang
TODAY=`date +"%F"`
LOG_FILE=/home/oracle/yangql/${ORA_USER}_${TODAY}.log
im_dz()
{
sqlplus -s ${ORA_USER}/$ORA_PASSWD <> $LOG_FILE
select sysdate from dual;
--1.--Create Temp Tables
create table yang.bak_da_20111123_1740 as select LONGID from yang.udb where 0=1;
--2.--Load ID need to be DA with sqlldr
set define off
! nohup sqlldr yang/yang control=./yang_udb_20111123_1740.ctl direct=true log=./yang_udb_20111123_1740.${today}.log >