#oracle
Вопрос:
Я получаю эту ошибку «Отсутствует правая скобка» в приведенном ниже запросе. Может кто-нибудь исправить ошибку, пожалуйста?
SELECT
DESCRIPTION,
TOTAL_ADMISSION,
EMERGENCY,
NORMAL
FROM TABLE (ORDERENTRY.PKG_S04REP00031.ADMISSION_SUMMARY(P_START_DATE = to_date('31/08/2021', 'dd/mm/yyyy')
P_END_DATE = to_date('01/09/2021', 'dd/mm/yyyy')
P_ADMISSION_TYPE = 'NORMAL'
/*P_ORDER_LOCATION_ID => :P_ORDER_LOCATION_ID, */
P_LOCATION_ID = 'K01'));
Комментарии:
1. Ваш код плохо отформатирован, но легко заметить, что между парами отсутствуют запятые, и в pl/sql вы используете -=> (как и в комментируемой части, нет = для указания значения после имени параметра.
Ответ №1:
Это должно сработать
SELECT
DESCRIPTION,
TOTAL_ADMISSION,
EMERGENCY,
NORMAL
FROM TABLE (ORDERENTRY.PKG_S04REP00031.ADMISSION_SUMMARY(P_START_DATE => to_date('31/08/2021', 'dd/mm/yyyy') ,
P_END_DATE => to_date('01/09/2021', 'dd/mm/yyyy') ,
P_ADMISSION_TYPE => 'NORMAL' ,
--P_ORDER_LOCATION_ID => :P_ORDER_LOCATION_ID,
P_LOCATION_ID => 'K01')
);
select from table(package.function
Следовательно , вы используете
- Значения параметров в функциях или пакетах следуют за знаком
=>
не=
- Параметры разделяются запятой
- Я заменил
/* */
просто для--
, просто в косметических целях, так как оба представляют собой комментарии, но последнее чаще встречается, когда вы хотите прокомментировать только одну строку
Комментарии:
1. Спасибо тебе, Роберто! Теперь я хочу добавить предложение IN в P_LOCATION_ID, которое будет выбрано из подзапроса и снова получит ошибку пропущенного парантеза. Я пытаюсь сделать это так.. P_LOCATION_ID в (выберите location_id из ОПРЕДЕЛЕНИЯ.МЕСТОПОЛОЖЕНИЯ)
2. @xajid, пожалуйста, примите этот ответ и опубликуйте еще один вопрос с подробным объяснением новой проблемы.