對Oracle 表新增,修改進行過濾

2021-08-14 04:39:09 字數 379 閱讀 5678

首先建立乙個和真實表一樣的臨時表

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表中賦...