sql 记录一次灾难 游标问题
起因:游标执行存储过程 下载begin 外面了.. ,造成一直触发存储过程
收获:定义变量统一在游标外部使用, 书写内容在begin 内部书写
alter PROCEDURE USP_dgd_wzh_INPUT_SAVE
@inputrowidhd VARCHAR(10),
@doccode varchar(30)
as
DECLARE @rowid varchar(40)
begin --游标更改数据
--申明一个游标
DECLARE @po_no varchar(50),@modelcode varchar(50),@size_state varchar(50),@rec_date datetime,@plan_date datetime, @exdate datetime,@lot_date datetime,@to_country varchar(50) --循环变量 DECLARE MyCursor CURSOR FOR SELECT
po_no,modelcode,size_state,rec_date,plan_date,exdate,lot_date,to_country
FROM po_order_input where inputrowid = @inputrowidhd and size_state !='码制'
--循环一个游标 --打开一个游标
OPEN MyCursor FETCH NEXT FROM MyCursor INTO @po_no,@modelcode,@size_state,@rec_date,@plan_date,@exdate,@lot_date ,@to_country
WHILE @@FETCH_STATUS =0 BEGIN
exec getxxxx @rowid output
INSERT INTO wzh_ddgl_item(Doccode,rowid,ordercode,modelcode,size_state,Orderdate,Originaldate,postdate,lot_date,Portmsg)
values (@doccode,@rowid, @po_no,@modelcode,@size_state,@rec_date,@plan_date,@exdate,@lot_date ,@to_country) FETCH NEXT FROM MyCursor INTO @po_no,@modelcode,@size_state,@rec_date,@plan_date,@exdate,@lot_date ,@to_country
END --关闭游标
CLOSE MyCursor
--释放资源
DEALLOCATE MyCursor end
太久不用忘记游标的写法了
DECLARE cur CURSOR FOR SELECT DISTINCT mtl_no
FROM pc_mtl_staytest_item
WHERE doccode = @doccode
OPEN cur
FETCH NEXT FROM cur INTO @mtl_no
WHILE(@@FETCH_STATUS = )
BEGIN
SET @cnt = ISNULL(@cnt,) + -- 循环代码 IF @cnt >=
BEGIN
BREAK
END
FETCH NEXT FROM cur INTO @mtl_no
END
CLOSE cur
DEALLOCATE cur

如果确实死循环了,需要删掉死锁进程,查出死锁的进出
SELECT request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName
FROM sys.dm_tran_locks WITH(NOLOCK)
WHERE resource_type='OBJECT'
然后 KILL + 进程号
sql 记录一次灾难 游标问题的更多相关文章
- [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)
原文:[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之四: 把游标说透(不怕做不到,只怕想不到) 继上两篇:ORACLE PL ...
- PL/SQL 编程(二)游标、存储过程、函数
游标--数据的缓存区 游标:类似集合,可以让用户像操作数组一样操作查询出来的数据集,实质上,它提供了一种从集合性质的结果中提取单条记录的手段. 可以将游标形象的看成一个变动的光标,他实质上是一个指针, ...
- SQL记录-PLSQL记录
PL/SQL记录 PL/SQL记录就是可以容纳不同类型的数据项的数据结构.记录由不同字段,类似于数据库表的行. 例如,要保留跟踪图书馆中的书籍.可能要跟踪有关每本书下面的属性类似:标题,作者,主题 ...
- Oracle SQL 硬解析和子游标
Oracle SQL 硬解析和子游标 What reasons will be happening sql hard parse and generating new child cursors 在一 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十一)数据层优化-druid监控及慢sql记录
本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...
- PL/SQL 记录 Record 简介
记录类型是表中当行数据结构的一个镜像.每个记录只存储一行数据,记录包含的是字段,而不是列. 1.用%rowtype属性隐式定义记录类型 declare individual individuals%r ...
- SpringBoot配置 druid 数据源配置 慢SQL记录
spring: datasource: url: jdbc:mysql://127.0.0.12:3306/test?autoReconnect=true&useUnicode=true&am ...
- MySQL 查看执行的SQL记录
我们时常会有查看MySQL服务端执行的SQL记录.在MySQL5.1之后提供了支持,通过在启动时加入-l 或者--log选项即可: mysqld -l mysqld --log 在后面的版本(5.1. ...
- mysql如何配置sql记录
原文链接:http://www.qqdeveloper.com/detail/11/1.html 为什么要记录sql记录 主要目的是为了检测我们的网站安全问题,有效的避免一些sql注入或者是xss攻击 ...
随机推荐
- 百度云 2G 4核 服务器拼团链接
拼团链接如下: https://cloud.baidu.com/campaign/ABCSale-2019/index.html?teamCode=P3D6DV8T
- Java的常用API
Object类 1.toString方法在我们直接使用输出语句输出对象的时候,其实通过该对象调用了其toString()方法. 2.equals方法方法摘要:类默认继承了Object类,所以可以使用O ...
- - 反编译 AndroidKiller 逆向 实践案例 MD
目录 目录 反编译 AndroidKiller 逆向 实践案例 MD AndroidKiller 简介 插件升级 基本使用 实践案例 修改清单文件 打印 debug 级别的日志 方式一:直接代理 Lo ...
- map集合转set集合
import java.util.*; //Map集合的迭代器输出,先将Map集合变为Set集合,再使用Iterator迭代器 public class Java_collection { publi ...
- c#语法复习总结(1)-浅谈c#.net
出来工作两年,发现自己进步太小了,工作能力是不能混的,想先从基础知识好好复习一下,再深入的学习一些高级框架和先进的理念.找回了博客园的密码账号,好好学习和总结.先从数据类型总结一下,无非就是值类型,引 ...
- ProviderManager
类ProviderManager java.lang.Object继承 org.jivesoftware.smack.provider.ProviderManager public final cla ...
- 对比度增强(二):直方图正规划与伽马变换 cv.normal()函数使用及原理
直方图正规化: 图像为I,宽为W,高为H,I(r,c)代表I的第r行第c列的灰度值:输出图像记为O,为使得输出图像的灰度值在[Omin,Omax]范围里,可用如下公式: ...
- easydict的使用方法
easydict的作用:可以使得以属性的方式去访问字典的值 from easydict import EasyDict as edict a=['8',2,3]a=edict()a.f=99print ...
- MySQL之简介以及数据类型(一)
一:关系型数据库 所谓的关系型数据库RDBMS,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据. 二:关系型数据库的主要产品: oracle:在以前的大型项目中使用 ...
- 【转载】C#通过InsertAt方法在DataTable特定位置插入一条数据
在C#中的Datatable数据变量的操作过程中,可以通过DataTable变量的Rows属性的InsertAt方法往DataTable的指定位置行数位置插入一个新行数据,即往DataTable表格指 ...