首先建立乙個和真實表一樣的臨時表
create global temporary table 臨時表表名 as select * from 真實表 on commit preserve rows;//建立的是會話級別的臨時表
將資料新增進臨時表,然後執行
insert into 真實表 select distinct * from 臨時表表名 where 臨時表條件 and 主鍵 not in (select 主鍵 from 真實表 where 真實表條件)//實現過濾插入
update 真實表 r set(r.列名,r.列名)=(select m.列名,m.列名 from 臨時表 m where 臨時表範圍 and r.主鍵=m.主鍵 ) where 真實表範圍
Oracle對大表進行delete注意事項
那麼可以注意一下如下說明 檢視執行計畫,如果說刪除的記錄很多,走索引的成本會比全表掃瞄更大,因為更新資料時還需要做一些約束校驗和建立index entry 而且對於多cpu 情況,全表掃瞄還可以使用並行的特性。如果表上有索引,b tree 索引可以unusable 索引,函式索引則disable 索...
Oracle 通過子查詢批量新增 修改表資料
1 通過查詢快速建立表 create table test1 id,job,mgr,sal as select from select rownum rn,a.job,a.mgr,a.sal from emp a where rownum 10 where rn 6 這是乙個分頁查詢 2 通過查詢快...
Oracle 之 表新增欄位後修改字段順序
工作中遇到 在為乙個表新增欄位後,新增欄位在最後,想調整新增欄位的位置。1 原始方法 新建臨時表以儲存正確的順序 create table a 2 as select column1,colum2,a表中的順序 from a 1 刪除表a 1 drop table a 1 新建a 1並從a 2表中賦...