【发布时间】:2013-07-27 03:59:59
【问题描述】:
我收到此错误:
cannot perform a DML operation inside a query
当我尝试执行查询时
select st_atten_up(1,7) from dual;
代码如下。
create or replace FUNCTION st_atten_up(stu_id IN student_info.id%type,app_mon IN student_attendence.month%type)
RETURN NUMBER
IS
att1 NUMBER;
BEGIN SELECT ATTENDANCE into att1 FROM student_attendence
WHERE student_attendence.id = stu_id and student_attendence.month = app_mon;
att1 := att1 + 1;
UPDATE student_attendence SET ATTENDANCE = att1
where id = stu_id and month = app_mon;
return att1;
END;
提前致谢。
【问题讨论】:
-
在你的函数中使用
pragma autonomous_transaction;使其可以从select语句中调用。
标签: oracle plsql oracle10g plsqldeveloper