Oracle function函数中无法使用update更新
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更新的更多相关文章
- SQL中使用UPDATE更新数据时一定要记得WHERE子句
我们在使用 SQL 中的 UPDATE 更新数据时,一般都不会更新表中的左右数据,所以我们更新的数据的 SQL 语句中会带有 WHERE 子句,如果没有WHERE子句,就回更新表中所有的数据,在 my ...
- 使用SQL中的update更新多个字段值
使用SQL中的update更新多个字段值,set后面的条件要用逗号不能用and set后面的多个条件之间没有关联也不可以有关联,所以就不能用and了:where 条件后面 可以为and 如: upda ...
- ORACLE常用函数汇总(持续更新中....)
在使用ORACLE过程中,把一些常用的函数的相关用法,注意事项进行简单的汇总,便于自己查询参考. DBMS_RANDOM包 dbms_random是一个可以生成随机数值或者字符串的程序包.这个包有in ...
- function(函数)中的动态参数
我们可向函数传递动态参数,*args,**kwargs,首先我们来看*args,示例如下: 1.show(*args) def show(*args): print(args,type(arg ...
- 【spring data jpa】spring data jpa 中的update 更新字段,如果原字段值为null不处理,不为null则在原来的值上加一段字符串
示例代码: /** * 如果barCode字段值为null则不处理 * 如果barCode字段值不为null则在原本值的前面拼接 del: * @param dealer * @return */ @ ...
- Oracle之函数中使用游标
create or replace function getcustprodinstaddr(in_CustId in number,in_area_code in number) return va ...
- Oracle function函数赋权
-- 1.赋权 -- 在原有权的账号下个执行 grant select on psprd.functionName to user; -- 2. 别名 -- 在需要使用别名的账号下执行 CREATE ...
- 关于Oracle to_char()函数中的IW,WW 周别显示
1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾 例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107 公式 每周第一天 :date + ...
- 【转】Oracle 自定义函数语法与实例
原文地址:https://blog.csdn.net/libertine1993/article/details/47264211 Oracle自定义函数的语法如下: create or replac ...
- 联表多字段update更新语句
前言 最近需要写联表多字段update更新语句,发现不同的数据库,SQL语法也不一样,正好我这里有MySQL.Oracle.PgSQL三种数据库环境,分别练习.实操这三种数据库的联表update语句 ...
随机推荐
- [NOIP2017 普及组]跳房子 【题解】
题目背景 NOIP2017 普及组 T4 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 \(n ...
- 【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
问题描述 使用Github Action,通过 Azure/functions-container-action@v1 插件来完成 yaml 文件的配置,并成功部署Function Image 的过程 ...
- AJAX容易出错地方,错误处理
myajax.js //创建路由器对象 const express=require('express'); //引入连接池模块 const pool=require('../pool.js'); ...
- Python3+Selenium3自动化测试-(九)
selenium的学习拖拉了很久,内容也是较基础的部分,实际应用时查询文档也是OK的,当然,整理出来会更有利于我们在实际使用时去应用. 所以这一篇把官方的API文档进行解读整理,在看完这些API,将能 ...
- PHP转Go实践:xjson解析神器「开源工具集」
前言 近期会更新一系列开源项目的文章,新的一年会和大家做更多的开源项目,也欢迎大家加入进来. xutil 今天分享的文章源自于开源项目jinzaigo/xutil的封装. 在封装过程中,劲仔将实现原理 ...
- Typora软件下载与markdown语法的使用
Typora软件下载与markdown语法的使用 一.Typora下载 1.Typora的简介 Typora是一款轻量级文本编辑器,文本阅读器,是目前最火爆的文本编辑器. Typora中格式,字体,主 ...
- dapr入门与本地托管模式尝试
1 简介 Dapr是一个可移植的.事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的.无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架.Dapr支持的语言 ...
- Linux音频采集和在国产化平台中遇到的坑(二)
Linux音频采集和在国产化平台中遇到的坑(二) ALSA采集这条路走不通,只能尝试其他途径,这里通过PulseAudio的接口成功实现了采集麦克风和系统声音的功能. linux PulseAudio ...
- docker02-centos上安装
1.前提说明Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上.Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位 ...
- .NET 和 .NET Core 使用 JWT 授权验证
JWT介绍 参考文章 https://www.cnblogs.com/cjsblog/p/9277677.html 一..NET 中使用 1. NuGet包 搜索JWT,下载安装(本人用的是8.2.3 ...