`

oracle 游标判空方法

阅读更多
create or replace package TAL_TEST is
 

 TYPE myCursorType IS REF CURSOR;
  
 --测试空游标
 PROCEDURE p_testEmptyCursor;
  
end TAL_TEST;


create or replace package body TAL_TEST is
 
 --测试空游标
 PROCEDURE p_testEmptyCursor
   IS
   rowRecord SJ_CD_PERIODS%ROWTYPE;
   myCursorFirst myCursorType ;
   myCursorSecond myCursorType;
   myCursorThird myCursorType;
   myCursorForth myCursorType;
   BEGIN
     --使用notfound(失败) 数据库中不存在限制条件下的数据集  
     OPEN myCursorFirst FOR
     SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001' ;
     IF myCursorFirst%notfound THEN
       dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集');
       ELSE
         dbms_output.put_line('数据库中存在FPERIODID为1001的数据库');
         END IF;
      
     --使用ROWCOUNT(失败)数据库中存在限制条件下的数据集
     OPEN myCursorSecond FOR
     SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002';
     IF myCursorSecond%ROWCOUNT = 0 THEN
       dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集');
       ELSE
         dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集');
         END IF;
          
      --使用FETCH(成功)数据库中存在限制条件下的数据集
      OPEN myCursorThird FOR
      SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002';
      FETCH myCursorThird INTO rowRecord; 
       IF myCursorThird%NOTFOUND THEN
         dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集');
         ELSE
           dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集');
           END IF;
       
      --使用FETCH(成功)数据库中不存在限制条件下的数据集
      OPEN myCursorForth FOR
      SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001';
      FETCH myCursorForth INTO rowRecord; 
       IF myCursorForth%NOTFOUND THEN
         dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集');
         ELSE
           dbms_output.put_line('数据库中存在FPERIODID为1001的数据集');
           END IF;          
     END;
      
end TAL_TEST;

myCursorFirst:

--使用notfound(失败) 数据库中不存在限制条件下的数据集  
     OPEN myCursorFirst FOR
     SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001' ;
     IF myCursorFirst%notfound THEN
       dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集');
       ELSE
         dbms_output.put_line('数据库中存在FPERIODID为1001的数据库');
         END IF;

myCursorSecond:

--使用ROWCOUNT(失败)数据库中存在限制条件下的数据集
     OPEN myCursorSecond FOR
     SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002';
     IF myCursorSecond%ROWCOUNT = 0 THEN
       dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集');
       ELSE
         dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集');
         END IF;

myCursorThird

--使用FETCH(成功)数据库中存在限制条件下的数据集
      OPEN myCursorThird FOR
      SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '20112012141202260210001003001002002';
      FETCH myCursorThird INTO rowRecord; 
       IF myCursorThird%NOTFOUND THEN
         dbms_output.put_line('数据库中不存在FPERIODID为20112012141202260210001003001002002的数据集');
         ELSE
           dbms_output.put_line('数据库中存在FPERIODID为20112012141202260210001003001002002的数据集');
           END IF;

myCursorForth:

--使用FETCH(成功)数据库中不存在限制条件下的数据集
      OPEN myCursorForth FOR
      SELECT A.* FROM SJ_CD_PERIODS A WHERE A.FPERIODID = '1001';
      FETCH myCursorForth INTO rowRecord; 
       IF myCursorForth%NOTFOUND THEN
         dbms_output.put_line('数据库中不存在FPERIODID为1001的数据集');
         ELSE
           dbms_output.put_line('数据库中存在FPERIODID为1001的数据集');
           END IF;
分享到:
评论

相关推荐

    oracle游标的总结oracle游标的总结

    Oracle 游标概述 Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、...

    Oracle游标使用方法及语法大全

    Oracle 游标使用方法及语法大全 Oracle 游标是 PL/SQL 程序中的一种重要组件,用于处理查询结果集。游标可以分为隐式游标和显式游标两种,隐式游标由 PL/SQL 管理,隐式游标打开时查询开始,查询结束时隐式游标自动...

    ORACLE 游标使用示例

    在Oracle数据库中,游标(Cursor)是一种非常重要的编程工具,尤其在处理复杂的数据操作时。游标允许我们逐行处理查询结果,这对于迭代、条件判断或者数据更新等任务非常实用。下面,我们将深入探讨Oracle游标的使用...

    Oracle游标使用方法及语法大全.doc

    ### Oracle游标使用详解 #### 一、游标概述 游标是Oracle数据库中用于处理查询结果集的强大工具,尤其适用于需要逐行处理查询结果的情况。...掌握游标的使用方法对于任何Oracle开发者而言都是必备技能。

    Oracle游标使用案例大全

    Oracle游标是数据库编程中非常重要的一个概念,主要用于处理SQL查询的结果集。游标允许我们按行处理数据,逐条读取结果集,而不仅仅是一次性获取所有数据。在Oracle数据库中,游标对于复杂的事务处理、动态SQL以及...

    Oracle游标使用大全

    ### Oracle游标使用详解 #### 一、Oracle游标简介 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集。它允许用户通过PL/SQL编程语言逐行访问和处理查询返回的数据记录。游标可以是显式定义的(即在...

    oracle游标使用大全

    Oracle 游标是PL/SQL编程中不可或缺的一部分,它们允许程序员逐行处理查询结果,而不仅仅是获取单一数据点。在Oracle数据库中,游标主要用于在循环或其他控制结构中操作多行数据,使得处理复杂的数据操作变得更为...

    oracle游标学习资料

    Oracle游标是数据库编程中非常重要的一个概念,它允许开发者逐行处理查询结果集,而不仅仅是一次性处理所有数据。在Oracle中,游标分为隐式游标和显式游标。 **一、游标简介** 游标的核心功能是提供一种方式来遍历...

    Oracle游标使用详解

    根据提供的标题、描述以及部分代码内容,我们可以详细探讨Oracle游标的使用方法,特别是明确游标(Explicit Cursor)和隐式游标(Implicit Cursor)的区别及其具体应用方式。 ### Oracle游标简介 在Oracle数据库中...

    oracle游标使用及实例

    ### Oracle游标使用及实例详解 #### 一、Oracle游标概述 在Oracle数据库中,游标(Cursor)是一种用于处理SQL查询结果集的方式。它允许用户逐行地读取和处理查询结果,这对于需要对每一行数据进行特定操作的情况非常...

    Oracle 游标使用大全.pdf

    掌握游标的正确使用方法对于编写高效的数据库操作程序至关重要。 通过本篇Oracle游标的使用大全,我们可以了解到Oracle数据库游标的类型、属性以及如何在PL/SQL中实现对数据集的逐行处理。这不仅有助于提升程序员的...

    oracle游标使用大全1.txt

    本文详细介绍了Oracle游标的使用方法,包括如何声明、打开游标,如何使用变量与类型匹配,以及如何处理异常情况等。通过这些知识点的学习,读者可以更好地理解和应用Oracle游标,提高开发效率和代码质量。此外,还...

    Oracle 游标使用大全

    这篇文档《Oracle 游标使用大全》应该涵盖了关于Oracle游标的各种使用方法和最佳实践。 1. **游标的定义与类型** - 游标(Cursor)是数据库系统中一个概念,用于跟踪查询结果集中的当前位置。 - Oracle游标有两种...

    Oracle游标的使用方法.pdf

    【Oracle游标的使用方法】 Oracle游标是数据库管理系统中用于处理SQL语句的重要工具,它允许程序逐行处理查询结果,而不是一次性加载所有数据。游标由上下文区支持,这是一个内存区域,存储了处理SQL语句所需的信息...

    oracle游标优化

    ### Oracle游标优化 ...通过上述方法,可以在一定程度上优化Oracle游标的性能,从而提高应用程序的整体响应时间和资源利用率。需要注意的是,每种优化策略都应该根据具体的业务需求和技术环境来选择和实施。

    Oracle 游标 Oracle 游标

    ### Oracle游标详解 在Oracle数据库中,游标(Cursor)是处理数据集的一个关键机制,主要用于执行查询并逐行处理结果集。游标可以被视为一个临时存储区,用于保存SELECT语句的结果集,允许程序对这些结果进行迭代...

Global site tag (gtag.js) - Google Analytics