2013-12-12 5 views
1

나는 다음과 같은 코드를 실행하려고에 대한 종료되지 SQL 명령을하고 나는 ORA-00933 오류 얻을 : 내가 할나는 이상한 오류 ... ORA-00933이 : 제대로 APEX의 SQL 문

<code> --CODE B 
select distinct po_details.po_id, 
po_details.po_det_id, 
po_details.change_order, 
po_details.start_date, 
po_details.end_date, 
po_details.po_det_amt, 
po_details.scope, 
po_details.name, 
po_details.po_status, 
po_details.wbs 
from po_details,wbs,project 
where po_details.po_id = :P230_PO_ID 
and po_details.wbs = wbs.wbs_number_id 
and wbs.po_number_id = :P230_PO_NUMBER 
and substr(wbs.wbs_number_id,1,6) = project.wbs_Sequence 
and project.project_number = nvl(substr(:F101_FPC_NUMBER,1,10),project.project_number)) 
</code> 

을 내 SQL 문이 잘못 된 곳을 보지 마라.

이 SQL 문 (CODE B)은 사용자 정의 유효성 검사 후 화면을 새로 고칠 때만 다른 오류 메시지와 함께 오류가 발생하는 APEX 응용 프로그램의 코드를 간소화하려는 시도였습니다. 매우 짜증나.

<code> --CODE A 
select po_details.po_id, 
po_details.po_det_id, 
po_details.change_order, 
po_details.start_date, 
po_details.end_date, 
po_details.po_det_amt, 
po_details.scope, 
po_details.name, 
po_details.po_status, 
po_details.wbs 
from PO_DETAILS 
where po_details.po_id = :P230_PO_ID 
and po_details.wbs in (select distinct wbs.wbs_number_id 
from wbs, project 
where wbs.po_number_id = :P230_PO_NUMBER 
and substr(wbs.wbs_number_id,1,6) = project.wbs_sequence 
and project.project_number = nvl(substr(:F101_FPC_NUMBER,1,10),project.project_number)) 
order by po_details.change_order 
</code> 

이 코드 APEX에있는 SQL 문에 대한 나타나는 오류 메시지는 이것이다 : 는 원래 SQL 문 (CODE A)는이처럼 보였다 report error: ORA-01445: cannot select ROWID from, or sample, a join view without a key-preserved table ORA-06510: PL/SQL: unhandled user-defined exception

... 그리고 사람들은 나에게 말했다 보기 (보기 작성 전에 CODE B 낙서)를 사용하면이 새로 고침 오류 출력 문제가 해결됩니다. 뭐? 새로 고치기 위해이 모든 농구가 있습니까? ORA-00933 오류 메시지를 알아낼 수 있다면 계속 진행할 수 있습니다. 나는 무지개를 쫓고있는 것 같다. 제안 사항이 있으십니까? 감사합니다.

당신 ORA-00933를 들어

답변

0

, 당신은 마지막 줄에 여분의 괄호가 있습니다

and project.project_number = nvl(substr(:F101_FPC_NUMBER,1,10),project.project_number)) 

되어야한다 :

and project.project_number = nvl(substr(:F101_FPC_NUMBER,1,10),project.project_number) 

귀하의 '코드 A'블록 '을 동일하게 나타납니다 코드 B '와 동일한 추가 대괄호를 사용합니다. 그것 없이는 표시 한 오류를 어떻게 생성 할 수 있는지 보지 못하기 때문에 잘못된 코드를 붙여 넣은 것 같습니다.

+0

동일한 코드로 복사 한 것을 믿을 수 없습니다! ARGH! 내 질문을 올바른 코드로 업데이트했습니다. 관찰에 감사드립니다. – ValerieR

+0

그래서 원래 문제가 무엇인지 발견했습니다. 내 마스터 세부 정보 페이지의 세부 부분에 대한 내 SQL 문에 ORA-01445 오류가 발생한 'order by'절이있는 것으로 보입니다. 일단 'order by'절을 꺼내면 모든 것이 효과가있었습니다! 내 새로 고침이 성공적입니다! – ValerieR