Oracle:查询中的DML操作

尼克松1333

我收到此错误:

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_TRANSACTIONLink),则可以从技术上在select中执行DML 然而,这是很少从内执行DML一个好主意,SELECT陈述了许多很好的理由不过,要回答你的问题,你可以写你的函数(包括变异表,性能下降。) PRAGMA

create or replace FUNCTION st_atten_up(stu_id IN student_info.id%type,app_mon IN student_attendence.month%type) 
RETURN NUMBER 
IS
PRAGMA AUTONOMOUS_TRANSACTION;
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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态查询以查找所有表oracle中的所有表DML活动

来自分类Dev

查询以检查在Oracle中的表上完成的Last DML的日期和时间

来自分类Dev

在 SQL 中的视图上触发 DML 操作

来自分类Dev

Oracle日期/时间操作查询

来自分类Dev

如何在SQL Server中执行DML操作?

来自分类Dev

如何在SQL Server中执行DML操作?

来自分类Dev

不允许在列表中删除 Apex DML 操作

来自分类Dev

Oracle中的日期操作

来自分类Dev

Oracle:在比较操作中如何使用子查询中的空格引用别名

来自分类Dev

ORA-14551:使用立即执行时无法在查询错误内执行DML操作

来自分类Dev

Oracle:可以在没有并行属性的表上进行并行DML操作吗?

来自分类Dev

在oracle中递归查询

来自分类Dev

在Oracle中更新查询

来自分类Dev

在oracle中递归查询

来自分类Dev

Oracle 中的动态查询

来自分类Dev

在 ORACLE 中查询以优化

来自分类Dev

Oracle-故障转移表或查询操作

来自分类Dev

使用oracle查询(乘法,除法等)进行操作

来自分类Dev

卡在Oracle中的查询中

来自分类Dev

Oracle PLSQL 中的 LOB 操作

来自分类Dev

DML和异常处理-Oracle

来自分类Dev

不支持DML操作。无法使用spring数据更新postgresql数据库中的数据

来自分类Dev

oracle中的查询和过程

来自分类Dev

sqlserver中的Oracle联接查询

来自分类Dev

Oracle查询中的增量值

来自分类Dev

Oracle中的SQL透视查询

来自分类Dev

在Oracle中查询日期时间

来自分类Dev

Oracle SQL中的组合查询

来自分类Dev

在查询中添加Sum()(Oracle)