SQL @@Rowcount】的更多相关文章

 Oracle 存储过程 删除表记录时删除不存在的记录也是显示删除成功 create or replace procedure delDept(p_deptno in dept.deptno%type) is begin delete from dept where deptno=p_deptno; dbms_output.put_line('部门删除成功...'); exception when others then dbms_output.put_line('部门删除失败...'); en…
sql%rowcount用于记录修改的条数,就如你在sqlplus下执行delete from之后提示已删除xx行一样,这个参数必须要在一个修改语句和commit之间放置,否则你就得不到正确的修改行数. 例如: declare n number; begin insert into test_a select level lv from dual connect by level<500; n:=sql%rowcount; commit; dbms_output.put_line(n); end…
sql%rowcount用于记录改动的条数,必须放在一个更新或者删除等改动类语句后面运行,select语句用于查询的话无法使用, 当你运行多条改动语句时,依照sql%rowcount 之前运行的最后一条语句改动数为准.…
sql%rowcount用于记录修改的条数,必须放在一个更新或者删除等修改类语句后面执行,select语句用于查询的话无法使用, 当你执行多条修改语句时,按照sql%rowcount 之前执行的最后一条语句修改数为准.…
sql%found,sql%notfound,sql%rowcount 在执行DML(insert,update,delete)语句时,可以用到以下三个隐式游标(游标是维护查询结果的内存中的一个区域,运行DML时打开,完成时关闭,用sql%isopen检查是否打开): sql%found (布尔类型,默认值为null) sql%notfound(布尔类型,默认值为null) sql%rowcount(数值类型默认值为0) sql%isopen(布尔类型) 当执行一条DML语句后,DML语句的结果…
SQL%ROWCOUNT是一个游标属性,而SQL中的DML操作实际上是一种隐式的游标操作,在做insert,update,delete,merge以及select into操作时,Oracle会打开一个始终指向最近执行的SQL语句的隐式游标,这个游标有3个常用的属性: (1)SQL%FOUND,有记录被修改,返回TRUE (2)SQL%NOTFOUND,没有记录被修改,返回TRUE (3)SQL%ROWCOUNT,语句操作的记录数…
sql server中,返回影响行数是:If @@RowCount<1 Oracle中,返回影响行数是:If sql%rowcount<1 例: sqlserver: create procedure Proc_test , )='', AS BEGIN Update T_Mt Set Stat=@Stat,OStat=@Stat,RptTime=Getdate() Where MsgId=@MsgId --没有更新成功就插入到t_Statbuf insert into t_statbuf(M…
说明: %BULK_ROWCOUNT 属性计算FORALL迭代影响行数 在进行SQL数据操作语句时,SQL引擎打开一个隐式游标(命名为SQL),该游标的标量属性(scalar attribute)有 %FOUND, %ISOPEN, %NOTFOUND, and %ROWCOUNT. FORALL语句除具有上边的标量属性外,还有个复合属性(composite  attribute):%BULK_ROWCOUNT,该属性具有索引表(index-by  table)语法.它的第i个元素存贮SQL语句…
原文引入:http://blog.csdn.net/mh942408056/article/details/6949325 sql%found sql%notfound sql%rowcount sql%isopen 分类: Oracle2011-11-11 17:55 280人阅读 评论(0) 收藏 举报 sqldeleteinsertnull数据库 在执行DML(insert,update,delete)语句时,可以用到以下三个隐式游标(游标是维护查询结果的内存中的一个区域,运行DML时打开…
oracle中.返回影响行数是:If sql%rowcount 举例: update ut_calenderStatus t set t.calenderstatus=pi_flg, t.m=pi_M, t.n=pi_N, t.prolong=pi_prolong where t.fundcode=pi_fundcode; if sql%rowcount=0 then insert into ut_calenderStatus values (pi_fundcode,pi_flg,pi_M,pi…
@@Rowcount主要是返回上次sql语句所影响的数据行数 SELECT * FROM dbo.Region AS R SELECT @@rowcount SELECT @@rowcount --我们可以使用@@rowcount来作递归或循环 begin select * from Region where id=@n end…
get diagnostics cnt := row_count; 现在有两个表tab1和tab2,两个表的格式相同,tab1中有1000条数据,tab2中0条数据 创建测试功能函数 create or replace function test_fun() return integer as $body$ declare rowcnt integer; begin insert into tab2 select * from tab1; get diagnostics rowcnt := ro…
  PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00…
PL/SQL 基础 ( 下 )   1. PL/SQL中的 SQL语句 - END语句与COMMIT等内容,没有任何关系. - PL/SQL does not directly support data definition language( DDL ) statements, such as CREATE TA BLE, ALTER TABLE, or DROP TABLE. - PL/SQL does not support data control language( DCL ) sta…
PL_SQL:带有分支和循环,面向过程匿名块:declare(可选,声明各种变量和游标的地方)begin(必要的,从此开始执行)exception(抓取到异常后执行的)end;[sql] view plaincopyset serveroutput on;(默认是关闭) --最简单的PL/SQL语句块 begin dbms_output.put_line('HelloWorld!'); end; --最简单的语句块 declare v_name varchar2(20); begin v_nam…
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点.本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的…
一.存储过程 存储过程是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.oracle可以把PL/SQL程序储存在数据库中,并可以在任何地方来运行它.存储过程被称为PL/SQL子程序,是被命名的PL/SQL快,存储在数据库,通过输入.输出参数与调用者交换信息.oracle存储过程不返回数据. 语法: create or replace procudure 存储过名称( 参数名称 输入输出类型 参数类型, 参数名称…
一.游标简介 在PL/SQL中执行SELECT.INSERT.DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(Context Area),也称为缓冲区.游标是指向该区的一个指针.它提供了一种在多行结果集中对每一行数据分别进行单独处理的方法.用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理. oracle中游标有如下两种: 静态游标:分为显式游标和隐式游标. ref游标:引用类型,类似于C中的指针. 二.静态游标 静态游标分为显式游标和隐式游标…
DDL commands --> create user / table / view / sequence alter DML --> data manipulation language (insert, select, update, delete) eg : SELECT ename FROM emp WHERE sal = (SELECT MAX(sal) FROM EMP); %type(single col), %rowtype(single row/record) cursor…
隐式游标:一次只能返回一行结果(不需要定义,默认自动建立)  显式游标: 需要开发人员提前定义,可以通过循环的方式处理游标里的sql语句,返回多行结果    隐式游标的属性:   sql%rowcout    统计在游标中处理的记录数   sql%found      如果在游标中能找到符合条件的一条记录,结果为true   sql%notfound   如果在游标中能找不到符合条件的一条记录,结果为true   sql%isopen     判断游标是否打开,在隐式游标中默认游标自动打开 1.…
--将方法和过程用包定义 create or replace package pkg_emp as --输入员工编号查询出员工信息 procedure pro_findInfo( in_empno emp2.empno%type, out_name out emp2.ename%type, out_sal out emp2.sal%type ); --根据部门编号修改本部门员工工资 procedure pro_editInfo( in_emp_record emp2%rowtype, out_f…
--演示隐式游标,系统自动声明,自动打开,自动使用并且自动关闭 begin update emp set sal = 1000; dbms_output.put_line('影响的行数:' || sql%rowcount); end; rollback; /*游标的使用方法: 第一步:声明游标 第二步:打开游标 第三步:使用游标进行循环操作 第四步:关闭游标*/ --普通游标,游标本身就是一个变量 declare --下面的这行代码声明了一个游标 cursor mycur is select *…
--goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 dbms_output.put_line('goto'); dbms_output.put_line('goto'); dbms_output.put_line('goto'); dbms_output.put_line('goto'); <<a>> dbms_output.put_li…
数据提取 -- 游标 游标只是一个指向某个结果集的指针. 声明游标: cursor employee_cur IS select * from employees; 打开游标: open employee_cur; 提取数据: fetch employee_cur into employee_rec;  -- employee_rec 是employees%rowtype类型 关闭游标: close employee_cur; 也可以多表 join 作为结果集. declare cursor j…
动态SQL 是指在执行时才构建 SQL 语句, 相对于静态 sql 的编译时就已经构建. 动态PLSQL 是指整个PL/SQL代码块都是动态构建, 然后再编译执行的. 作用: 1. 可以支持 DDL 语句, 静态 sql 只能支持 DML 语句. 2. 支持web 引用程序的查询意愿( 一个网络应用程序的常见需求是用户可以指定他们想看到的列, 以及改变数据的排序方式 ) 2. 可以将业务逻辑先放在表中, 然后再动态编译. NDS 是我们首选的动态解决方案. NDS 执行动态语句的办法就是 exe…
游标 Cursors--Conception 每一条被Oracle服务器执行的SQL语句都有一个独立的游标与之相关联:隐式游标 Implicit cursors: 用于所有的DML和PL/SQL的SELECT语句.显示游标 Explicit cursors: 被程序显示声明和命名.所定义的SQL语句必须只包含select语句,并且不能用insert.update或delete关键字.当select语句可能返回零或多于一行时,必须用显式游标.当Select语句预计只返回一行时,隐式游标将做得更好.…
使用PL/SQL删除百万条记录的大表: 最近开发人员对测试环境数据库进行了压力测试,数据库中产生了大量的脏数据.有几张大表里数据量均在百万甚至千万条的记录数.开发人员现提出需求如下: 只清理其中的部分脏数据,不允许对这些表使用truncate操作.于是就有了下面的PL/SQL清理脚本: 1.编写删除数据表数据的脚本内容如下: $ cat data_del.sql  set serveroutput onshow serveroutputDECLARE V_LOGNUM NUMBER;V_NEED…
BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎.通常可以在SELECT INTO.FETCH INTO以及RETURNING INTO子句中使用BULK COLLECT.本文将逐一描述BULK COLLECT在这几种情形下的用法. 一.BULK COLLECT批量绑定的示例 --下面的示例中使用了BULK COLLECT将得到的结果集绑定到记录变量中         DECLARE     TYPE emp_rec_typ…
一.隐式游标的定义及其属性 定义 隐式游标由系统自动定义,非显示定义游标的DML语句即被赋予隐式游标属性.其过程由oracle控制,完全自动化.隐式游标的名称是SQL,不能对SQL游标显式地执行OPEN,FETCH,CLOSE语句. 属性 类似于显示游标,隐式游标同样具有四种属性,只不过隐式游标以SQL%开头,而显示游标以Cursor_name%开头通过SQL%总是只能访问前一个DML操作或单行SELECT操作的游标属性,用于判断DML执行的状态和结果,进而控制程序的流程 SQL%ISOPEN …
原文参考:http://plsql-tutorial.com/ 两种类型:     隐式:         执行INSERT.UPDATE.DELETE 或者只返回一条结果的SELECT语句时默认创建.     显式:          执行返回多条结果的SELECT语句时才能创建显式游标,创建时游标可以存储多行记录,但是同一个时间点上只能对一条记录进行处理. 隐式游标 隐式游标属性: 属性    返回类型 例子 %FOUND 至少一条记录受影响(或者返回)时返回TRUE SQL%FOUND 没…