精华内容
下载资源
问答
  • 如何判断游标是否存在

    千次阅读 2017-09-02 15:28:26
    如何判断游标是否存在   两个方法可以查看Cursor是否Open:   1.查询syscursors系统表:   Select * from MASTER.dbo.syscursors   2. 使用CURSOR_STATUS函数:   比如: ...

    如何判断游标是否存在

     

    有两个方法可以查看Cursor是否Open:

     

    1.查询syscursors系统表:

     

    Select * from MASTER.dbo.syscursors

     

    2. 使用CURSOR_STATUS函数:

     

    比如:

    CREATE TABLE#TMP

    (

       ii int

    )

    GO

     

    INSERT INTO#TMP(ii)VALUES(1)

    INSERT INTO#TMP(ii)VALUES(2)

    INSERT INTO#TMP(ii)VALUES(3)

     

    GO

     

    --Create a cursor.

    DECLARE cur CURSOR

    FOR SELECT* FROM #TMP

     

    --Display the status of the cursor before and after opening

    --closing the cursor.

     

    SELECT CURSOR_STATUS('global','cur')AS 'After declare'

    OPEN cur

    SELECT CURSOR_STATUS('global','cur')AS 'After Open'

    CLOSE cur

    SELECT CURSOR_STATUS('global','cur')AS 'After Close'

     

    --Remove the cursor.

    DEALLOCATE cur

     

    --Drop the table.

    DROP TABLE#TMP

    展开全文
  • oracle 判断游标是否为空

    千次阅读 2014-07-30 16:40:00
    begin open cur_p; loop fetch cur_p into var_a,var_b; exit when cur_p%notfound; if cur_p%rowcount = 0 then begin --语句块1 ...
    begin
    open cur_p;
    loop
    fetch cur_p into var_a,var_b;
    exit when cur_p%notfound;

    if cur_p%rowcount = 0 then
    begin
    --语句块1
    exception
    when others then
    null;
    end;

    else
    begin
    --语句块2
    exception
    when others then
    null;
    end;
    end if;

    end loop;
    close cur_p;
    end;
    展开全文
  • 判断游标是否处于开启状态

    千次阅读 2009-04-30 12:40:00
    --查看游标select * from master.dbo.syscursors where status1--帮助--参数1 游标名--参数2 游标类型报告当前为连接打开的服务器游标的属性。语法 sp_cursor_list [ @cursor_return = ] cursor_variable_name ...

     --查看游标
    select * from master.dbo.syscursors where status<>-1

    --帮助
    --
    参数1 游标名
    --
    参数2 游标类型

    报告当前为连接打开的服务器游标的属性。

    语法


    sp_cursor_list
    [ @cursor_return = ] cursor_variable_name OUTPUT
              ,
    [ @cursor_scope = ] cursor_scope


    备注
    sp_cursor_list 生成连接打开的当前服务器游标列表,并对每个游标的全局属性进行说明,例如游标的可滚动性和可更新性。sp_cursor_list 列出的游标包括:

    Transact
    -SQL 服务器游标。

    API 服务器游标,由 ODBC 应用程序打开,然后调用 SQLSetCursorName 为游标命名。

    使用 sp_describe_cursor_columns 对游标返回的结果集的属性进行说明。使用 sp_describe_cursor_tables 报告游标引用的基表。sp_describe_cursor 报告的信息与 sp_cursor_list 相同,但只用于指定游标。

    参数
    [ @cursor_return = ] cursor_variable_name OUTPUT

    已声明的游标变量的名称。cursor_variable_name 的数据类型为
    cursor,没有默认值。游标是只读的可滚动动态游标。

    [ @cursor_scope = ] cursor_scope

    指定要报告的游标级别。cursor_scope 的数据类型为
    int,没有默认值,可以是下列值中的一个。

    值  说明 
    1
    报告所有本地游标。

    2
    报告所有全局游标。

    3
    报告本地游标和全局游标。
    http:
    //topic.csdn.net/u/20081006/15/c0f5463c-8548-4cb2-8312-4f53528c6c00.html

    展开全文
  • 游标循环读取数据.txt

    2019-07-05 15:37:28
    游标用于存储过程中,循环读取数据并插入指定的表中(也可以添加判断插入不同的表)
  • 在网上查看游标和循环用在存储过程中


    在网上查看游标和循环用在存储过程中都有这样一句设置游标已在结果集最后的语句


    DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1

    或者是这样

    declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null;


    网上讲的资料很少,所以查看了mysql5.1的中文官方文档  网址   http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html


    里面是这样讲述这个语法的

    20.2.10.1. DECLARE条件

    DECLARE condition_name CONDITION FOR condition_value
     
    condition_value:
        SQLSTATE [VALUE] sqlstate_value
      | mysql_error_code

    这个语句指定需要特殊处理的条件。它将一个名字和指定的错误条件关联起来。这个名字可以随后被用在DECLARE HANDLER语句中。请参阅20.2.10.2节,“DECLARE处理程序

    除了SQLSTATE值,也支持MySQL错误代码。

    20.2.10.2. DECLARE处理程序

    DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement
     
    handler_type:
        CONTINUE
      | EXIT
      | UNDO
     
    condition_value:
        SQLSTATE [VALUE] sqlstate_value
      | condition_name
      | SQLWARNING
      | NOT FOUND
      | SQLEXCEPTION
      | mysql_error_code

    这个语句指定每个可以处理一个或多个条件的处理程序。如果产生一个或多个条件,指定的语句被执行。

    对一个CONTINUE处理程序,当前子程序的执行在执行处理程序语句之后继续。对于EXIT处理程序,当前BEGIN...END复合语句的执行被终止。UNDO 处理程序类型语句还不被支持。

    ·        SQLWARNING是对所有以01开头的SQLSTATE代码的速记。

    ·        NOT FOUND是对所有以02开头的SQLSTATE代码的速记。

    ·        SQLEXCEPTION是对所有没有被SQLWARNING或NOT FOUND捕获的SQLSTATE代码的速记。

    除了SQLSTATE值,MySQL错误代码也不被支持。

    例如:

    mysql> CREATE TABLE test.t (s1 int,primary key (s1));
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> delimiter //
     
    mysql> CREATE PROCEDURE handlerdemo ()
        -> BEGIN
        ->   DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
        ->   SET @x = 1;
        ->   INSERT INTO test.t VALUES (1);
        ->   SET @x = 2;
        ->   INSERT INTO test.t VALUES (1);
        ->   SET @x = 3;
        -> END;
        -> //
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> CALL handlerdemo()//
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> SELECT @x//
        +------+
        | @x   |
        +------+
        | 3    |
        +------+
        1 row in set (0.00 sec)

    注意到,@x是3,这表明MySQL被执行到程序的末尾。如果DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1; 这一行不在,第二个INSERT因PRIMARY KEY强制而失败之后,MySQL可能已经采取默认(EXIT)路径,并且SELECT @x可能已经返回2。




    展开全文
  • 游标

    2021-03-17 20:44:21
    游标一定义二游标属性三游标使用步骤:loop循环游标while循环游标for 循环游标...1.%isopen 布尔类型变量,用来判断游标是否已经打开(可以在任意地方使用) 2.%found 布尔类型,用来判断当前游标是否有数据有数据
  • 先解释一下要实现的功能:随机生成一个1-30之间的整数,然后判断该数是否数据表中存在,如存在,则重新生成;如不存在,则执行insert操作。代码如下: while numRowCount < 10 loop numRand := TRUNC(dbms_...
  • SQL游标操作行内数据

    2015-05-26 17:40:01
    DECLARE @studyNum VARCHAR(10),@Name VARCHAR(10) DECLARE stu_cur SCROLL CURSOR FOR SELECT Stu_ID,Stu_Name ...--开启游标之后,默认是位于第一行的前面,因此需要FETCH NEXT FETCH NEXT FROM stu_cur INTO @stu
  • Oracle使用游标查询所有数据表备注

    千次阅读 2017-10-13 17:00:30
    --Oracle使用游标查询所有数据表备注 declare  mytablename NVARCHAR2(200):=''; --定义要查询的数据表名称变量  mytablecomment NVARCHAR2(200):=''; --定义要查询的数据表注释变量  commentsql VARCHAR2(2000)...
  • 游标中用到的函数,就是前一篇文章中创建的那个函数。... 1 create procedure UpdateHKUNo --存储过程里面放置游标 2 as 3 begin 4 5 declare UpdateHKUNoCursor cursor --声明一个游标,查询满足条件的数据 ...
  • 1.使用select into begin  select dno into v_dno from tbl where xxx. exception  when no_data_found then  --无数据 ...2.游标fetch open mycursor; fetch mycursor into rec;  if myc...
  • 工作中用到的记录一下,游标的详细定义及说明请百度--游标格式化数据 DECLARE cursor_jxsmb CURSOR FOR --定义一个游标 SELECT F0 FROM dbo.JXSMB2019; --定于游标数据源 OPEN cursor_jxsmb --打开游标 ...
  • 1.mysql存储过程 drop procedure if exists curdemo CREATE PROCEDURE curdemo(pid int) BEGIN DECLARE notfound INT ... #定义一个辅助变量用于判断 DECLARE a int; #定义游标输出值赋予的变量 DECLARE ...
  • 应用场景: 某软件系统中的数据库因为版本不断升级,需要定期导入最新的数据表结构到测试数据库中的不同表空间进行测试.导入的时候容易出现主键约束丢失问题....--Oracle使用游标给所有数据表添加主键...
  • 请问这个如果写 ...通过游标,2012-1 =2011 值,就 判断2011 如果2011-1 =2010 在游标中存在,就继续。 如果2010-1 =2009 在游标中不存在,就返回2010 对应的那个ccc。到此结束,以后,就不执行了
  • 记一次sql使用游标循环更新数据

    千次阅读 2018-09-27 17:35:14
    过程: ALTER PROCEDURE [dbo].[updateCode] AS BEGIN -- routine body goes here, e.g. -- SELECT 'Navicat for SQL Server' declare @gid varchar(50) , @code varchar(50) ...--定义一个游标 declare ...
  • mysql存储过程利用游标遍历更新数据

    千次阅读 2019-08-25 13:09:01
    一、创建存储过程 create procedure my_procedure2() -- 创建存储过程 begin -- 开始存储过程 declare t_id varchar(32); -- 自定义变量1 declare t_ajwh varchar(50);... -- 自定义控制游标循环变量,默认fa...
  • #开始循环,判断是否游标已经到达了最后作为循环条件 while s <> 1 do insert into t_ehdnotice_file(id,name,original_name,create_time,ehdnotice_id,path) values(a,b,c,now(),d,'2014-04\\15'); #读取下一行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,728
精华内容 21,491
关键字:

判断游标是否有数据