`

SQL%FOUND和SQL%NOTFOUND

SQL 
阅读更多
当执行一条DML语句后,DML语句的结果保存在四个游标属性中,这些属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。隐式游标只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性.SQL%FOUND,SQL%NOTFOUND是布尔值,SQL%ROWCOUNT是整数值。



no_data_found、sql%notfound、sql%rowcount简单说明

  SQL%FOUND和SQL%NOTFOUND

  在执行任何DML语句前SQL%FOUND和SQL%NOTFOUND的值都是NULL,在执行DML语句后,SQL%FOUND的属性值将是:

  . TRUE :INSERT

  . TRUEELETE和UPDATE,至少有一行被DELETE或UPDATE.

  . TRUE :SELECT INTO至少返回一行

  当SQL%FOUND为TRUE时,SQL%NOTFOUND为FALSE。

  SQL%ROWCOUNT

  在执行任何DML语句之前,SQL%ROWCOUNT的值都是NULL,对于SELECT INTO语句,如果执行成功,SQL%ROWCOUNT的值为1,如果没有成功,SQL%ROWCOUNT的值为0,同时产生一个异常NO_DATA_FOUND.

  SQL%ISOPEN

  SQL%ISOPEN是一个布尔值,如果游标打开,则为TRUE, 如果游标关闭,则为FALSE.对于隐式游标而言SQL%ISOPEN总是FALSE,这是因为隐式游标在DML语句执行时打开,结束时就立即关闭。

   NO_DATA_FOUND:该异常可以在两种不同的情况下出现:第一种:当SELECT。。。。INTO语句的WHERE子句  没匹配任何数据行时;第二种:试图引用尚未赋值的PL/SQL index-by表元素时。

      SQL%NOTFOUND:是隐匿游标的属性,当没有可检索的数据时,该属性为:TRUE;常作为检索循环退出的条件。

                                    若某UPDATE或DELETE语句的WHERE子句不匹配任何数据行,该属性为:TRUE,但不并不出现NO_DATA_FOUND异常.

      SQL%ROWCOUNT:该数字属性返回了到目前为止,游标所检索数据库行的个数。
分享到:
评论

相关推荐

    PL/SQL%FOUND and EXCEPTION

    通过实例说明在PL/SQL中,%Found, %notfound 和 EXCEPTION的用法

    oracle数据库中sql%notfound的用法详解

    SQL%NOTFOUND 是一个布尔值。与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true。否则返回false。这样的语句在实际应用中,是非常有用的。例如要...

    Oracle显式游标和隐式游标.doc

    隐式游标的属性有四种,分别是 SQL %ISOPEN、SQL %FOUND、SQL %NOTFOUND、SQL %ROWCOUNT。这些属性可以用来判断游标的状态和结果,进而控制程序的流程。 在使用游标时,需要注意以下几点: 1. 游标需要在声明部分...

    hibernate SQLServer2008Dialect

    SQLServer2008Dialect 优化了原来的分页查询数据方法以及在生成SQL时表后增加了with(nolock)

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    vs code连接sql server数据库步骤及遇到的问题小结

    最近因为要在vs code上连接到sql server数据库,第一次尝试,之前用 java的时候使用jdbc连接过数据库,感觉用vs code连接数据库步骤要简单一些,网上写的博客也不是特别多,就顺便把我的步骤记录下来,仅供参考,...

    Oracl+SQLServer驱动包

    Oracl-JDBC驱动,SQL2005驱动,SQLserver2000驱动

    SQL21日自学通

    Integrity Constraint Violated--Parent Key Not Found 482 Oracle Not Available 483 Inserted Value Too Large for Column 483 TNS:listener Could Not Resolve SID Given in Connect Descriptor 484 Insufficient...

    android 5.0 api 21 sqlite3 not found sqlite3_enable_load_extension

    1.sqlite not found 2.CANNOT LINK EXECUTABLE: cannot locate symbol "sqlite3_enable_load_extension" referenced by "sqlite3" 适用于android 5.0 API 21版本,使用方法 1. 包含3个文件 sqlite3,lib sqlite_jni...

    sqlserver 20018 驱动

    sqlserver 各种驱动下载网址,kettel 7.1 sqlserver 2008 native 驱动下载(sqljdbc4-2.0.jar),解决Driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' could not be found, make sure the 'MS SQL ...

    【解决方案】pyspark 初次连接mongo 时报错Class not found exception:com.mongodb.spark.sql.DefaultSource

    部分报错如下: Traceback (most recent call last):  File /home/cisco/spark-mongo-... File /home/cisco/spark-2.2.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/sql/readwriter.py, line 165, in load  

    SimpleSQL 2.11.0.unitypackage

    Playmaker scripts can be found here SimpleSQL helps you integrate database storage into your game or project. Create level map links, store player stats, keep inventory specs, and much more! Please ...

    Qt连接SQLServer的QODBC驱动

    解决QSqlDatabase: QODBC driver not loaded QSqlDatabase: available drivers: QSQLITE问题 解压后放到QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers 类似的路径下

    MySQL导入sql文件

    MySQL导入sql文件

    sql2000 Log Explorer4.2(含注册码)+汉化

    他可以支持SQLServer7.0和SQLServer2000,提取标准数据库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下: l 日志文件浏览 l 数据库变更审查 l 计划和授权变更...

    execsql整理.pdf

    * SQLCODE:表示I/O的结果,0表示I/O成功,100表示NOTFOUND,表示I/O失败。 * SQLERRM:保留未用。 * SQLERRP:保留未用。 * SQLERRD:为一个含有6个INTEGER数组,SQLERRD[1]保留未用,SQLERRD[2]新增时SERIAL字段所...

    -bash: mysql: command not found的问题与解决

    前几天重装了mysql,装好之后navicat一直正常可以对mysql进行操作,但是今天要使用命令行进行操作时遇到-bash: mysql: command not found的问题。 总结一下解决办法: 这个问题的出现是两个原因 1 .bash_profile中...

    Pro Oracle SQL

    , Karen Morton and her team help you master powerful aspects of Oracle SQL not found in competing databases. You’ll learn analytic functions, the MODEL clause, and advanced grouping syntax—...

    Log Explorer for SQL Server v4.22 含注册机

    他可以支持SQLServer7.0、SQLServer2000和SQLServer2005,提取标准数据库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下: l 日志文件浏览 l 数据库变更审查 l...

Global site tag (gtag.js) - Google Analytics