2012-10-10 1 views
0

SQL 쿼리에 약간의 문제가 발생했습니다. (가입 정기적으로도) 잘 작동 가입extractValue 및 오른쪽 외부 조인 - 오라클 SQL

내가 제 2 외부를 제거하면 : 여기 내 그것은 나에게 "없는 표현을 ORA-00936"를 제공

WHERE obj.mod_type = 'SER' 
    and obj.wrk_id=wrk_lang.id(+) 
    and extractvalue(value(shm),'/*/@xmi:id','xmlns:xmi="http://www.omg.org/XMI"') = extractvalue(value(shm_con),'/*/@source')(+) 

에 가입합니다.

Can smb. 도와주세요? 이 왼쪽 외부가 실제로처럼 나에게 보이는

+3

아마도'value (shm_con (+))'를 써야합니다. 하지만 ANSI JOIN을 사용하면 더 좋을 것입니다. 너의 도움을 위해서 –

답변

0

가입 - 이전 스타일에서 오라클 구문 (+)를 필요한 측면 ANSI 구문에 참여하는 동안의 옵션 측면에 넣고 (왼쪽 또는 RIGHT)가 JOIN 스펙에서 호출됩니다. 예는 this AskTom reference을 참조하십시오. 그래서, FlorinGhita의 추천 @에 확대하는 것은 우리가 뭔가

SELECT * 
    FROM OBJ 
    LEFT OUTER JOIN WRK_LANG 
    ON (obj.wrk_id = wrk_lang.id and 
     extractvalue(value(obj.shm),'/*/@xmi:id','xmlns:xmi="http://www.omg.org/XMI"') = 
      extractvalue(value(wrk_lang.shm_con),'/*/@source') 
    WHERE obj.mod_type = 'SER'; 

등의 공유를 얻고 즐길 것 ANSI JOIN 구문을 사용 (명령문의 나머지 부분에 대한 가정의 비트를 만드는)합니다.

+0

Thx! Nested Sets와 ANSI Join의 문제를 해결했습니다. – FredM