CREATE OR REPLACE FUNCTION changePY
RETURN VARCHAR2
as
PRAGMA AUTONOMOUS_TRANSACTION; --as 或者 is 后边 加上这句 PRAGMA AUTONOMOUS_TRANSACTION “自治事务”
v_length INT := 0;
T_ICD10VALUE varchar2(1000);
T_ICD10code varchar2(1000);
T_ICDTYPE varchar2(1000);
T_ICDBM varchar2(1000);
T_ICDSAU varchar2(1000);
T_ICDOLDCODE varchar2(1000);
T_ICDOLDVALUE varchar2(0100);
T_REMARK varchar2(1000);
T_PYM varchar2(1000);
T_PYMA varchar2(1000);
CURSOR DataTable IS select * from icd10v2;
begin
select count(*) into v_length from icd10v2;
open DataTable;
loop
FETCH DataTable into T_ICD10code, T_ICD10VALUE, T_ICDTYPE, T_ICDBM, T_ICDSAU,T_ICDOLDCODE, T_ICDOLDVALUE, T_REMARK, T_PYM;
exit when DataTable%notfound;
T_PYMA:=fn_getpy(T_ICD10VALUE,4) ;
update icd10v2 set PYM=T_PYMA where ICD10CODE=T_ICD10code and ICD10VALUE=T_ICD10VALUE;
COMMIT; -- 在更新语句执行之后提交
end loop;
CLOSE DataTable;
return '更新成功';
end changePY;

无法在查询中执行 DML 操作。

自治事务的特点

第一,这段程序不依赖于原有Main程序,比如Main程序中有未提交的数据,那么在自治事务中是查找不到的。

第二,在自治事务中,commit或者rollback只会提交或回滚当前自治事务中的DML,不会影响到Main程序中的DML。

Oracle function函数中无法使用update更新的更多相关文章

  1. SQL中使用UPDATE更新数据时一定要记得WHERE子句

    我们在使用 SQL 中的 UPDATE 更新数据时,一般都不会更新表中的左右数据,所以我们更新的数据的 SQL 语句中会带有 WHERE 子句,如果没有WHERE子句,就回更新表中所有的数据,在 my ...

  2. 使用SQL中的update更新多个字段值

    使用SQL中的update更新多个字段值,set后面的条件要用逗号不能用and set后面的多个条件之间没有关联也不可以有关联,所以就不能用and了:where 条件后面 可以为and 如: upda ...

  3. ORACLE常用函数汇总(持续更新中....)

    在使用ORACLE过程中,把一些常用的函数的相关用法,注意事项进行简单的汇总,便于自己查询参考. DBMS_RANDOM包 dbms_random是一个可以生成随机数值或者字符串的程序包.这个包有in ...

  4. function(函数)中的动态参数

    我们可向函数传递动态参数,*args,**kwargs,首先我们来看*args,示例如下:     1.show(*args) def show(*args): print(args,type(arg ...

  5. 【spring data jpa】spring data jpa 中的update 更新字段,如果原字段值为null不处理,不为null则在原来的值上加一段字符串

    示例代码: /** * 如果barCode字段值为null则不处理 * 如果barCode字段值不为null则在原本值的前面拼接 del: * @param dealer * @return */ @ ...

  6. Oracle之函数中使用游标

    create or replace function getcustprodinstaddr(in_CustId in number,in_area_code in number) return va ...

  7. Oracle function函数赋权

    -- 1.赋权 -- 在原有权的账号下个执行 grant select on psprd.functionName to user; -- 2. 别名 -- 在需要使用别名的账号下执行 CREATE ...

  8. 关于Oracle to_char()函数中的IW,WW 周别显示

    1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾 例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107 公式 每周第一天 :date + ...

  9. 【转】Oracle 自定义函数语法与实例

    原文地址:https://blog.csdn.net/libertine1993/article/details/47264211 Oracle自定义函数的语法如下: create or replac ...

  10. 联表多字段update更新语句

    前言 最近需要写联表多字段update更新语句,发现不同的数据库,SQL语法也不一样,正好我这里有MySQL.Oracle.PgSQL三种数据库环境,分别练习.实操这三种数据库的联表update语句 ...

随机推荐

  1. 《Effective C++》设计与声明章节

    Item18:让接口容易被正确使用,不易被误用 总结: 1.好的接口很容易被正确使用,不容易被误用.你应该在你的所有接口中努力达到这些性质. 2."促进正确使用"的办法包括接口的一 ...

  2. 安装pytorch-gpu的经验与教训

    首先说明 本文并不是安装教程,网上有很多,这里只是自己遇到的一些问题 我是以前安装的tensorflow-gpu的,但是发现现在的学术论文大部分都是用pytorch复现的,因此才去安装的pytorch ...

  3. 就dispatch_source_t写的计时器

    直接上干货,我这里用的是Xcode12.4,macOS:11.2.3 OC版本:               swift版本:        

  4. 穿透的switch语句-循环概述与基本组成部分

    穿透的switch语句 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束. pu ...

  5. 行为型模式 - 命令模式Command

    模式的定义与特点 命令模式(Command Pattern),是将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化.命令模式是把发出命令的责任和执行命令的责任分割开,委派给不同的对象. ...

  6. Python TensorFlow深度神经网络回归:keras.Sequential

      本文介绍基于Python语言中TensorFlow的Keras接口,实现深度神经网络回归的方法. 目录 1 写在前面 2 代码分解介绍 2.1 准备工作 2.2 参数配置 2.3 数据导入与数据划 ...

  7. exgcd & 线性同余方程

    前置芝士 裴蜀定理 同余的性质 exgcd exgcd即扩展欧几里得定理,常用来求解\(ax + by = gcd(a,b)\)的可行解问题 推导过程: 考虑我们有: ​ \(ax + by = gc ...

  8. 使用Kubernetes中的Nginx来改善第三方服务的可靠性和延迟

    使用Kubernetes中的Nginx来改善第三方服务的可靠性和延迟 译自:How we improved third-party availability and latency with Ngin ...

  9. .net NPOI Excel导入:时间格式2022/5/26导入变成26-5月-2022

    1.问题由来 在做一个导入的需求时,测试导入模板,无论导入模板里的日期设置成何种日期格式到代码中都会提示有不正确的格式化数据,加断点调试发现,导入的日期如:Excel表格中是2022/5/26,断点看 ...

  10. Rpc-实现Zookeeper注册中心

    1.前言 本文章是笔主在声哥的手写RPC框架的学习下,对注册中心的一个拓展.因为声哥某些部分没有保留拓展性,所以本文章的项目与声哥的工程有部分区别,核心内容在Curator的注册发现与注销,思想看准即 ...