2013-05-16 2 views
0

을 병합합니다. 하지만 using 절 안에 sysdate 바꾸고 동적으로 사용하려고하면 다음 오류가 발생합니다.오라클 SQL 내가 하나 아래 등 더 많거나 적은 무언가를 보이는 SQL이 문 문제

 
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 

이 오라클의 노하우 버그입니다 - 나는 다음과 같은 예외가? 대체품은 무엇입니까?

업데이트 : 오타가 수정되었습니다.

+0

USING 절은'cola'라는 이름의 열을 반환해야 하는가? 위의 문장에서'cala'라는 이름의 칼럼을 반환합니다. 아마도 단지 오타이지만 언급 할 가치는 아마도 ... –

+0

예, 오타입니다. 나는 그것을 지금 고쳤다. – jagamot

+0

모든 ORA-600은 버그입니다. My Oracle Support에서 찾아 보면이 문제에 대한 답을 빨리 찾을 수 있습니다. (해당 세부 정보는 여기에 게시하지 않으셔서 죄송합니다. 그러나 해당 정보를 공유하기위한 규칙이 무엇인지 완전히 명확하지 않습니다.) –

답변

2

노력이

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 ); 
+0

차이점을 이해할 수 있도록 도와 주실 수 있습니까? Using 절의 some_Date는 변수를 통해 동적으로 삽입하려고하는 것입니다. 그리고 나는 위의 예외를 봅니다. – jagamot

+0

문제는'into' 절에 있습니다. 당신은 테이블이 있어야하는 쿼리를 사용했다. (뷰를 업데이트하려고 시도하는 것으로 생각할 수는 있지만 가능한 특정 상황에서만). insert 및 update 절에서 s.some_data를 사용할 수 있습니다. – haki

관련 문제