错误(11,15):PL/SQL:ORA-04044:此处不允许使用过程、函数、包或类型
我试图从4个表中获取数据—事实、产品、客户、日期—进入客户分配表, 当我刚刚运行select查询时,我得到了结果,但是当我将其放入一个过程中并使用select语句执行insert into时,我得到了一个错误“error(11,15):PL/SQL:ORA-04044:这里不允许使用过程、函数、包或类型” 有人能帮忙解释一下为什么会这样吗 谢谢大家!错误(11,15):PL/SQL:ORA-04044:此处不允许使用过程、函数、包或类型,sql,oracle,select,insert,ora-04044,Sql,Oracle,Select,Insert,Ora 04044,我试图从4个表中获取数据—事实、产品、客户、日期—进入客户分配表, 当我刚刚运行select查询时,我得到了结果,但是当我将其放入一个过程中并使用select语句执行insert into时,我得到了一个错误“error(11,15):PL/SQL:ORA-04044:这里不允许使用过程、函数、包或类型” 有人能帮忙解释一下为什么会这样吗 谢谢大家! INSERT INTO CUST_ALLOC (PART_ID, CUSTOMER, MONTH, QTY_A
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中的保留关键字。如果过程包含您发布的insert语句,那么它甚至不应该编译。如果要使用DATE作为表名,请将其置于引号中:
INNER JOIN "DATE" ON X.DATE_NUM="DATE".DATE_NUM
是否可以发布整个过程?我的第一个怀疑是
MEASURE\u NUM
-它是这些表中的一列吗?我会在上面加上一个别名。如果这个过程被称为“P”,您可能会与产品的别名发生命名冲突。我也很担心有一张叫DATE的桌子。