--更新用户状态
PROCEDURE P_UPDATE_USER_STATUS
(
v_SrcID IN NUMERIC,
v_DstID IN NUMERIC,
v_DstType IN NUMERIC,
v_Offline IN NUMERIC
)
IS
BEGIN
IF v_DstType=1 THEN --群组
BEGIN
--获取群组用户
IF v_Offline=0 THEN
BEGIN
UPDATE T_OFFLINE_NUM SET OFFLINE_NUM=OFFLINE_NUM+1 WHERE SRC_ID=v_SrcID AND DST_ID=v_DstID AND DST_TYPE=v_DstType;
IF sql%rowcount<1 THEN
INSERT INTO T_OFFLINE_NUM(SRC_ID,DST_ID,DST_TYPE,OFFLINE_NUM) VALUES(v_SrcID,v_DstID,v_DstType,1);
END IF;
END;
ELSE
BEGIN
UPDATE T_OFFLINE_NUM SET OFFLINE_NUM=0 WHERE SRC_ID=v_SrcID AND DST_ID=v_DstID AND DST_TYPE=v_DstType;
IF sql%rowcount<1 THEN
INSERT INTO T_OFFLINE_NUM(SRC_ID,DST_ID,DST_TYPE,OFFLINE_NUM) VALUES(v_SrcID,v_DstID,v_DstType,0);
END IF;
END;
END IF;
END;
ELSE
BEGIN --好友间消息
--更新自己状态
UPDATE T_OFFLINE_NUM SET OFFLINE_NUM=0 WHERE SRC_ID=v_SrcID AND DST_ID=v_DstID AND DST_TYPE=v_DstType;
IF sql%rowcount<1 THEN
BEGIN
INSERT INTO T_OFFLINE_NUM(SRC_ID,DST_ID,DST_TYPE,OFFLINE_NUM) VALUES(v_SrcID,v_DstID,v_DstType,0);
END;
END IF;
--更新目标用户
IF v_Offline=0 THEN --目标用户离线
BEGIN
UPDATE T_OFFLINE_NUM SET OFFLINE_NUM=OFFLINE_NUM+1 WHERE SRC_ID=v_DstID AND DST_ID=v_SrcID AND DST_TYPE=v_DstType;
IF sql%rowcount<1 THEN
BEGIN
INSERT INTO T_OFFLINE_NUM(SRC_ID,DST_ID,DST_TYPE,OFFLINE_NUM) VALUES(v_DstID,v_SrcID,v_DstType,1);
END;
END IF;
END;
ELSE
BEGIN
UPDATE T_OFFLINE_NUM SET OFFLINE_NUM=0 WHERE SRC_ID=v_DstID AND DST_ID=v_SrcID AND DST_TYPE=v_DstType;
IF sql%rowcount<1 THEN
BEGIN
INSERT INTO T_OFFLINE_NUM(SRC_ID,DST_ID,DST_TYPE,OFFLINE_NUM) VALUES(v_DstID,v_SrcID,v_DstType,0);
END;
END IF;
END;
END IF;
END;
END IF;
COMMIT;
END;

上面的每条IF sql%rowcount<1 THEN,都是针对该语句上面的update语句的执行结果

删除也一样

--删除专家
PROCEDURE P_DELETE_NEWS
(
v_InfoID IN NUMERIC,
v_delNum OUT NUMERIC
)
IS
BEGIN
DELETE FROM T_EXPERT_INFO WHERE EXPERT_ID=v_InfoID;
v_delNum:=sql%rowcount;
COMMIT;

END P_DELETE_NEWS;

存储过程中update,然后用sql%判断update是否成功的存储过程的更多相关文章

  1. MySQL存储过程中实现执行动态SQL语句

    sql语句中的任何部分都可以作为参数. DROP PROCEDURE if exists insertdata; delimiter //CREATE PROCEDURE insertdata(IN ...

  2. [转]oracle存储过程中update不成功的一个原因

    原文地址:http://lin49940.iteye.com/blog/466626 今天一个同事写oracle 的存储过程遇到了一个问题, 他在里面update 操作不能完成更新的操作, 但是又不会 ...

  3. sql 在存储过程中使用事务(转)

    本来想自己写一下,后来发现这个写的比我理解的要好,所以直接拽过来了,链接地址:https://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737 ...

  4. 存储过程中使用事务与try catch

    一.存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 : ) ) ...

  5. ADOConnectoin事务和存储过程中的Begin tran commit

    一直以来我都是在存储过程中使用事务 create proc usp_proc begin begin  tran ..... commit end 那么我现在问一个问题,如果在BCB的代码中写这样的代 ...

  6. 关于T-SQL重编译那点事,WITH RECOMPILE和OPTION(RECOMPILE)区别仅仅是存储过程级重编译和SQL语句级重编译吗

    本文出处:http://www.cnblogs.com/wy123/p/6262800.html   在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的 ...

  7. WITH RECOMPILE和OPTION(RECOMPILE)区别仅仅是存储过程级重编译和SQL语句级重编译吗

    在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的其他因素的情况下,比如重建索引,更新统计信息等等), 一是基于WITH RECOMPILE的存储过程级 ...

  8. SQL Server--一个存储过程对同一个字段执行两种Update

    需求: 服务器程序被界面点击"置零"按钮后,所有未完成的任务的状态都置为异常结束. 但分两种情况: 0<=Status<40状态为未完成的任务1,其异常结束状态为50 ...

  9. 存储过程中使用事务,sql server 事务,sql事务

    一.存储过程中使用事务的简单语法       在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 ...

随机推荐

  1. RMQ——窗口题解

    题目:窗口 描述: [问题描述] 给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一位,如下表: Window position Min val ...

  2. Java学习日记-2.3 基本数据类型和对象所占内存空间大小

    转自:http://www.newsmth.net/nForum/#!article/Java/324167

  3. WKWebview点击图片查看大图

    大家都知道,WKWebview是没有查看大图的属性或者方法的,所以只能通过js与之交互来实现这一功能,原理:通过js获取页面的图片,把它存放到数组,给图片添加点击事件,通过index显示大图就行了 其 ...

  4. PHPExcell单元格中某些时间格式的内容不能正确获得的处理办法

    今天在写导入功能的时候某个时间格式的单元格内容不能正确获得,得出的是一串非时间戳的数字. 此时可以使用PHPExcell中自带的方法进行处理:PHPExcel_Shared_Date::ExcelTo ...

  5. jquery切换tab标签例子

    之前做了一个简单的小效果,使用jquery方式,让tab标签切换,效果如下 代码其实很简单,首先先把代码分享给大家,代码如下 var shoptoggle = $('.shoptoggle .shop ...

  6. Windows下连接调试Asus Nexus 7 Tablet

    Linux和mac下都能够直接连接,可是windows下必须下驱动.官网上的driver无论用.管用的是 https://drive.google.com/uc?id=0Bw8B2a85Qa1jSld ...

  7. 【C++深入探索】Copy-and-swap idiom详解和实现安全自我赋值

    分类: C/C++2012-08-30 21:40 2017人阅读 评论(2) 收藏 举报 任何管理某资源的类比如智能指针需要遵循一个规则(The Rule of Three): 如果你需要显式地声明 ...

  8. Android(java)学习笔记249:ContentProvider使用之获得系统联系人信息01

    1.系统联系人的数据库(3张最重要的表) (1)raw_contacts  联系人表        保存联系人的id   contact_id (2)data 数据表       保存联系人的数据 ( ...

  9. Windows系统下安装Python的SSH模块教程

    Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是 ...

  10. python 整型--《Python 3程序开发指南》笔记

    参考:<Python 3程序开发指南> 整数转换函数: bin(i) 返回整数i的二进制表示(字符串) hex(i) 返回i的十六进制表示(字符串) int(x) 将x转换为整数,失败产生 ...