这个问题与我之前的问题有关。
我有一个过程(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, UPDATEor DELETEand冲突DUAL。
有没有其他方法可以在返回表的函数中执行我的过程?
谢谢!