Ошибка (11,15): PL / SQL: ORA-04044: процедура, функция, пакет или тип здесь не разрешены - PullRequest
4 голосов
/ 05 мая 2011

Я пытаюсь получить данные из 4 таблиц FACTS_CDPM, PRODUCT, CUSTOMER, DATE в таблицу CUST_ALLOC, когда я просто запускаю запрос выбора, я получаю результат, но когда я помещаю его в процедуру и выполняю вставку соператор select, как показано ниже, выдает ошибку «Ошибка (11,15): PL / SQL: ORA-04044: здесь не разрешена процедура, функция, пакет или тип»

почему это происходит?

Спасибо!

INSERT INTO CUST_ALLOC
(PART_ID,
      CUSTOMER,
      MONTH,
      QTY_ALLOCATED
        )    
    SELECT P.PROD_ID,
       C.PURCHASING,
       D.MONTH_ID,
       SUM(X.QTY)
FROM FACTS_CDPM X INNER JOIN PRODUCT P ON P.PROD_NUM=X.PROD_NUM 
                    INNER JOIN CUSTOMER C ON X.CUST_NUM=C.CUST_NUM 
                    INNER JOIN DATE D ON X.DATE_NUM=D.DATE_NUM
WHERE MEASURE_NUM=18
GROUP BY P.PROD_ID,C.PURCHASING,D.MONTH_ID;

1 Ответ

3 голосов
/ 05 мая 2011

DATE - зарезервированное ключевое слово в Oracle. Ваша процедура не должна даже компилироваться, если она содержит оператор вставки, который вы опубликовали. Если вы собираетесь использовать DATE для имени таблицы, поместите его в кавычки:

INNER JOIN "DATE" ON X.DATE_NUM="DATE".DATE_NUM
...