Oracle sql%rowcount 返回影响行数;sql server @@RowCount返回影响行数

sql server中,返回影响行数是:If @@RowCount<1

Oracle中,返回影响行数是:If sql%rowcount<1

例:

sqlserver:

create procedure Proc_test
    @Stat int=0,
    @MsgId varchar(50)=‘‘,
AS
BEGIN
        Update T_Mt Set Stat=@Stat,OStat=@Stat,RptTime=Getdate() Where MsgId=@MsgId
        If @@RowCount<1      --没有更新成功就插入到t_Statbuf
        insert into t_statbuf(MsgId,Stat,RptTime) values(@MsgId,@Stat,Getdate())
END  

oracle:

CREATE OR REPLACE PROCEDURE test  

AS
BEGIN
    update MY_TIME_TEST1 set discript = ‘6‘ where discript = ‘1‘ ;
    If sql%rowcount>1  then  --上面update影响行数>1就插入到my_time_test1
    insert into MY_TIME_TEST1 values(sysdate,‘7‘);
    end if;
END;  

参照:http://www.linuxidc.com/Linux/2012-01/51693.htm

时间: 2024-08-02 06:50:48

Oracle sql%rowcount 返回影响行数;sql server @@RowCount返回影响行数的相关文章

Oracle EBS-SQL (MRP-2):检查期间主计划录入记录数.sql

SELECT      FU.description                           创建者,      MSD.CREATION_DATE             创建日期,      MSD.SCHEDULE_DESIGNATOR 计划名称,      MSD.SCHEDULE_DATE            计划日期,      MSI.SEGMENT1                      物料编码,      MSI.DESCRIPTION           

Oracle SQL操作计划基线总结(SQL Plan Baseline)

一.基础概念 Oracle 11g開始,提供了一种新的固定运行计划的方法,即SQL plan baseline,中文名SQL运行计划基线(简称基线),能够觉得是OUTLINE(大纲)或者SQL PROFILE的改进版本号.基本上它的主要作用能够归纳为例如以下两个: 1.稳定给定SQL语句的运行计划.防止运行环境或对象统计信息等等因子的改变对SQL语句的运行计划产生影响! 2.降低数据库中出现SQL语句性能退化的概率.理论上不同意一条语句切换到一个比已经运行过的运行计划慢非常多的新的运行计划上!

为什么SQL语句Where 1=1 and在SQL Server中不影响性能

    最近一个朋友和我探讨关于Where 1=1 and这种形式的语句会不会影响性能.最后结论是不影响.     虽然结论正确,但对问题的认识却远远没有解决问题的根本.实际上在T-SQL语句的书写过程中经常犯得错误就是得出一个很窄的结论,然后教条式的奉若圣经,对于T-SQL领域来说,在网上经常可以看到所谓的优化守则,随便在网上搜了一些摘录如下: 不要有超过5个以上的表连接(JOIN) 考虑使用临时表或表变量存放中间结果 少用子查询 视图嵌套不要过深,一般视图嵌套不要超过2个为宜. 对出现在wh

Oracle SQL执行计划基线总结(SQL Plan Baseline)

一.基础概念 Oracle 11g开始,提供了一种新的固定执行计划的方法,即SQL plan baseline,中文名SQL执行计划基线(简称基线),可以认为是OUTLINE(大纲)或者SQL PROFILE的改进版本,基本上它的主要作用可以归纳为如下两个: 1.稳定给定SQL语句的执行计划,防止执行环境或对象统计信息等等因子的改变对SQL语句的执行计划产生影响! 2.减少数据库中出现SQL语句性能退化的概率,理论上不允许一条语句切换到一个比已经执行过的执行计划慢很多的新的执行计划上! 注意:

oracle系统表v$session、v$sql字段说明(转)

在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等. V$SESSION中的常用列 V$SESSION是基础信息视图,用于找寻用户 SID或 SADDR.不过,它也有一些列会动态的变化,可用于检查用户.如例: SQL_HASH_VALUE, SQL_ADDRESS:这两列用于鉴别默认被 session执行的 SQL语句.如果为 null或 0,那就说明这个 session没有执行任何 SQL语

ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引

WHEN子句说明触发约束条件.Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数.WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行触发器中,不能用在INSTEAD OF行触发器和其它类型的触发器中. -- 创建记录操作事件的表 CREATE TABLE event_table( event VARCHAR2(50), time DATE ); -- 创建触发器 CREATE OR REPLACE TRIGGER tr_star

oracle学习 第三章 常用的SQL*PLUS命令 ——01

下面我们开始新的一章学习! 当输入SQL语句时,该语句被存在SQL缓冲区中(即一个内存区).这个SQL缓冲区很小,只能存一个SQL语句,当下一条SQL语句输入时,原来在缓冲区中的SQL语句被覆盖掉.SQL*PLUS是一个工具(环境).正像我们所看到的,我们可以用它来输入SQL语句.为了有效的输入和编辑SQL语句,SQL*PLUS还提供了一些常用的命令.与SQL语句不同的是SQL*PLUS的命令是可以缩写的.下面就简单的介绍一些常用的SQL*PLUS命令. 3.1 DESC[RIBE]命令 一般在

ORACLE中用rownum分页并排序的SQL语句

ORACLE中用rownum分页并排序的SQL语句 以前分页习惯用这样的SQL语句: select * from (select t.*,rownum row_num from mytable t order by t.id) b where b.row_num between 1 and 10 结果发现由于该语句会先生成rownum 后执行order by 子句,因而排序结果根本不对,后来在GOOGLE上搜到一篇文章,原来多套一层select 就能很好的解决该问题,特此记录,语句如下: sel

oracle学习 第三章 常用的SQL*PLUS命令 ——02

今天接着昨天的RUN命令继续讲. 3.5 n(设置当前行)命令和A(PPEND)(附加)命令 设想,你输入了例3-10的查询语句 例 3-10 SQL> SELECT ename 2 FROM emp; 例 3-10 结果 看到以上输出时,您发现在SELECT子句中忘了job,sal.这时您又如何修改您的SELECT子句呢?首先您应该使用SQL*PLUS的L(LIST)命令来显示SQL缓冲中的内容. 例 3-11 SQL> L 例 3-11 结果 在例3-11显示的结果中,2后面的"

(转)[SQL Server] 順位付け関数

原文链接:http://memo.itsysgroup.com/?p=362 久しぶりにSQL Serverの開発備忘録です. seoばかりアップしてて.開発備忘録では検索順位が悪いので.開発備忘録を多めに書きます^^ で.順位付け関数ですが.先日同僚が使って居るのを見て.整理しようと思いたちました. 順位付け関数には. row_number rank dense_rank ntile の4種類が有ります. 基本的な使用方法は. 関数() over(order by カラム名) ntile(数値