Oracle批量更新語句

1.問題描述:對照a表,根據id將name對照着更新b表

2.思路:創建臨時表存對照的數據,比如根據id更新name,那麼這個臨時表存id和name;使用更新語句更新符合條件的數據

3.MSSQL寫法:

--創建臨時表
SELECT A.FDEPTID,B.FNAME INTO #T FROM T_BD_DEPARTMENT A INNER JOIN T_BD_DEPARTMENT_L B ON A.FDEPTID = B.FDEPTID

--只更新部門維度且設置了部門ID的數據
UPDATE KDY_FA_DEPRECIATION SET FDPPROJECTNAME = #T.FNAME FROM #T,KDY_FA_DEPRECIATION WHERE #T.FDEPTID = KDY_FA_DEPRECIATION.FDPPROJECT
	AND FDPDIMENSION = 'BD_Department' AND FDPPROJECT > 0 

4.ORACLE寫法:

--創建會話級臨時表存部門對照數據
CREATE GLOBAL Temporary TABLE DEMOTEST
ON COMMIT PRESERVE ROWS
AS
SELECT A.FDEPTID,B.FNAME FROM T_BD_DEPARTMENT A INNER JOIN T_BD_DEPARTMENT_L B ON A.FDEPTID = B.FDEPTID

--只更新部門維度且設置了部門ID的數據
--SELECT FDPPROJECTNAME,FDPPROJECT FROM KDY_FA_DEPRECIATION WHERE FDPDIMENSION = 'BD_Department' AND FDPPROJECT > 0 
UPDATE KDY_FA_DEPRECIATION S SET S.FDPPROJECTNAME = (SELECT B.FNAME FROM DEMOTEST B WHERE S.FDPPROJECT = B.FDEPTID)
WHERE S.FDPDIMENSION = 'BD_Department' AND S.FDPPROJECT > 0 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章