[英]Oracle SQL Merge Statement Issue
我有一個看起來或多或少像下面這樣的sql -
declare some_Date date; begin select sysdate into some_Date from dual ; merge into (SELECT cola, colb, colc FROM TableA WHERE status='A' AND some_id = 101) P USING ( select some_Date as cola from dual ) S ON (P.cola=S.cola) WHEN MATCHED THEN UPDATE SET P.status = 'D' WHEN NOT MATCHED THEN INSERT ( cola, colb, colc ) VALUES ( xxx, xxx, xxx ); end ;
當我通過直接用sysdate替換some_date來運行上述查詢時,它執行時沒有錯誤。 但我替換using子句中的sysdate並嘗試動態使用它我得到以下錯誤。 我得到一個例外如下 -
Error report: ORA-00600: internal error code, arguments: [qcsfbdnp:1], [B1], [], [2], [], [], [], [], [], [], [], [] ORA-06512: at line 5 00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]" *Cause: This is the generic internal error number for Oracle program exceptions. This indicates that a process has encountered an exceptional condition. *Action: Report as a bug - the first argument is the internal error number
這是oracle中的一個知道錯誤嗎? 替補是什么?
更新:修正了錯字!
嘗試這個
merge into TableA P
USING ( select some_Date as cala from dual ) S
ON (P.cola=S.cola)
WHEN MATCHED THEN
UPDATE SET P.status = 'D'
WHERE status='A' AND some_id = 101
WHEN NOT MATCHED THEN
INSERT
( cola, colb, colc )
VALUES
( xxx, xxx, xxx );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.