繁体   English   中英

错误(11,15):PL/SQL:ORA-04044:过程,function,package,或此处不允许输入类型

[英]Error(11,15): PL/SQL: ORA-04044: procedure, function, package, or type is not allowed here

我试图从 4 个表 FACTS_CDPM、PRODUCT、CUSTOMER、DATE 中获取数据到 CUST_ALLOC 表中,当我刚刚运行 select 查询时,我得到了结果,但是当我将它放在一个过程中并使用 select 语句进行插入时如下,我收到一个错误“错误(11,15):PL/SQL:ORA-04044:过程,function,package,或此处不允许输入类型”

请有人帮忙解释为什么会这样?

谢谢!

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;

DATE是 Oracle 中的保留关键字。 如果它包含您发布的插入语句,您的过程甚至不应该编译。 如果要使用 DATE 作为表名,请将其放在引号中:

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

问题必须与提供给CUST_ALLOC表的同义词和授权有关。 我尝试通过删除已经提供的同义词和授权来解决这个问题,并尝试小心地创建一个新的。 有效!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM