这个问题与我之前的问题有关。
我有一个过程(PROC_YEARLYACTIVELIST2
),它将显示在指定年份的所有活动记录。
它将删除以前的内容TBLACTIVELISTYEARLY2
并插入结果PROC_YEARLYACTIVELIST2
。
我创建了一个函数,它将执行TBLACTIVELISTYEARLY2
,从中选择所有记录TBLACTIVELISTYEARLY
并将其放入CURSOR C_IH
,并返回水晶报表的表格。
以下只是部分代码:
宣布 CURSOR C_IH IS SELECT * FROM tblActiveListYearly2; ctr 整数; 我号码; currDeploymentComputer COL_TYPE_DEPLOYMENT_COMPUTER := COL_TYPE_DEPLOYMENT_COMPUTER NULL); R_IH C_IH%ROWTYPE; 开始 PROC_YEARLYACTIVELIST2(in_year); 打开 C_IH; 我:= 0; 环形 (....)
我试图将该函数称为
SELECT GETDEPLOYMENT_COMPUTER('2012') from dual;
并且有ORA-14551
错误
ORA-14551: cannot perform a DML operation inside a query
ORA-06512: at "NPLS.PROC_YEARLYACTIVELIST2", line 12
ORA-06512: at "NPLS.GETDEPLOYMENT_COMPUTER", line 3
搜索了一下,发现是因为和INSERT
, UPDATE
or DELETE
and冲突DUAL
。
有没有其他方法可以在返回表的函数中执行我的过程?
谢谢!