我需要对 Oracle 10g 数据库中的表(约 30,000 条记录)进行大规模更新。挑战在于没有可以选择目标行的“where”子句。但是,每个目标行都可以通过复合键来标识。这里的问题是复合键列表来自外部源(不在数据库中)。
目前,我有一个 Java 程序,它遍历复合键列表并吐出一个 PL/SQL 过程,该过程本质上只是一堆重复的update
语句,类似于以下内容:
update table1 t set myfield='Updated' where t.comp_key1='12345' and t.comp_key2='98765';
有没有更好的方法来做到这一点,或者考虑到我们只处理约 3 万条记录,这是否“足够好”?