Я пытаюсь запустить следующий код и получаю ошибку ORA-00933:
<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, которое выдает ошибку с другим сообщением об ошибке только при попытке обновить экран после пользовательской проверки. Очень надоедливый. Первоначально оператор SQL (CODE A) выглядел так:
<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>
Сообщение об ошибке, которое я получаю для этого оператора CODE A sql в APEX, таково:
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
... и люди сказали мне, что если я использую представление (код B, написанный перед созданием представления), это решит эту проблему с ошибкой обновления. Какая? Все эти обручи только для обновления? Если я смогу понять сообщение об ошибке ORA-00933, возможно, я смогу продолжить. Кажется, я гоняюсь за радугой вместо того, чтобы куда-то добраться. Какие-либо предложения? Спасибо!