ORA 00907 Отсутствует Правая Скобка

#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, пожалуйста, примите этот ответ и опубликуйте еще один вопрос с подробным объяснением новой проблемы.