2009年6月8日 星期一

Update 多欄位時需注意Subquery資料需與目標Table一對一對映

Oracle更新多欄位的方式通常會以SET (column_name, column_name, ...) = (subquery4) 的形式執行更新。不過需要注意的是,必須確保目標Table的資料列能與Subquery一對一對的對應映。

例子中Multi-Column 的Update來看,如果將 t1 建立時的rownum改成 12 更新就會失敗;這時候就只好屈就於cursor來解了:

cursor
cur_t2 is
select table_name, tablespace_name
from t2;

for cur_rec in cur_t2 loop
update t1
set t1.tablespace_name = t2.tablespace_name
where t1.table_name = cur_rec.table_name;
end loop;

沒有留言:

張貼留言