我是Oracle的新手。
我在Oracle有一個表有4列Period,Open_Flag,Creation_Dt,Updated_By。 「期間」列是表的主鍵。
我已經創建了一個proc,它將檢查表中輸入參數的句點值,如果其存在,則必須更新Open_flag的值,否則應插入新記錄。
create or replace PROCEDURE PROC_REF_SAP_PERIOD( V_PERIOD IN NUMBER,V_OPEN_FLAG IN VARCHAR2,V_CREATION_DT IN DATE,V_UPDATED_BY IN VARCHAR2) AS BEGIN MERGE INTO REF_SAP_PERIOD T USING (SELECT * FROM REF_SAP_PERIOD WHERE PERIOD=V_PERIOD )S ON (T.PERIOD=S.PERIOD ) WHEN MATCHED THEN UPDATE SET OPEN_FLAG = V_OPEN_FLAG --WHERE PERIOD=V_PERIOD AND CREATION_DT=V_CREATION_DT AND UPDATED_BY=V_UPDATED_BY WHEN NOT MATCHED THEN INSERT (PERIOD,OPEN_FLAG,CREATION_DT,UPDATED_BY) VALUES (V_PERIOD,V_OPEN_FLAG,V_CREATION_DT,V_UPDATED_BY); END;
問題是,在這種情況下更新工作正常,但插入不起作用。
請幫忙。插入合併不在Oracle中工作
-2
A
回答
0
您正在合併表與自身,按期間過濾。顯然,它永遠不會看到你自己不存在的價值。
試試這個行,而不是你的使用線:
using (select V_PERIOD "period" from dual)S
相關問題
- 1. Oracle合併/插入
- 2. 插入並選擇組合不工作
- 3. 刪除和插入不在oracle中的塊中工作
- 4. 熊貓合併,並加入不工作
- 5. Oracle sql合併插入並刪除但不更新
- 6. iOS SQLite插入並選擇不工作?
- 7. 插入不工作在MYSQL
- 8. 插入在php不工作
- 9. 插入不工作
- 10. 插入不工作
- 11. 插入不工作
- 12. Date_part不在oracle中工作
- 13. CASE不在oracle中工作
- 14. 我在PHP中插入不工作
- 15. 插入查詢不在mysql中工作
- 16. Ajax.Updater插入不在IE中工作
- 17. 如何在oracle中插入,並獲取插入行的ID?
- 18. 插入並在節點循環中選擇不工作
- 19. Oracle 11g - 只在工作日插入表中的FOR循環?
- 20. Oracle合併Sql插入目的地並從源刪除
- 21. 導入* .csv併合並工作表
- 22. 我的Oracle合併不起作用
- 23. Oracle,合併陳述不起作用
- 24. 合併排序不工作
- 25. 合併策略不工作
- 26. HTML表合併不工作
- 27. hiera合併不工作
- 28. 在Oracle中合併兩行
- 29. 插入日期值到oracle使用java不工作
- 30. 用c#形式的oracle插入語句不會工作?
請,文[不截圖](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload -images-的代碼上那麼當-要價-A-問題/ 285557#285557)。說我想幫助你;如果您發佈了一些文本,我可以輕鬆地複製代碼,嘗試編輯它;如果您發佈圖片,我只是投票結束該問題。 – Aleksej
對不起@Aleksej ...我現在已經更新了這個問題。 – Meen