`

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%FOUND`, 和 `SQL%ROWCOUNT` 是Oracle PL/SQL编程中的重要工具,它们帮助我们有效地检测和处理DML操作的结果,确保数据库操作的准确性和完整性。在编写事务处理、错误处理和数据验证...

    Oracle 游标使用大全

    这个游标有四个关键属性:SQL%FOUND、SQL%NOTFOUND、SQL%ROWCOUNT和SQL%ISOPEN。SQL%FOUND和SQL%NOTFOUND是布尔值,分别表示DML语句是否找到匹配的行;SQL%ROWCOUNT返回受影响的行数。例如,`IF SQL%FOUND THEN ...`...

    Oracle 游标使用大全.doc

    DML语句执行后,它们的结果会被保存在四个隐式游标属性中:SQL%FOUND、SQL%NOTFOUND、SQL%ROWCOUNT和SQL%ISOPEN。其中,SQL%FOUND和SQL%NOTFOUND是布尔值,用来判断是否找到数据;SQL%ROWCOUNT是一个整数值,表示受...

    oracle游标的使用

    这个隐式游标有四个属性:SQL%FOUND、SQL%NOTFOUND、SQL%ROWCOUNT和SQL%ISOPEN。例如,SQL%FOUND和SQL%NOTFOUND分别表示是否找到匹配的行,而SQL%ROWCOUNT则返回受影响的行数。这些属性可以用来控制程序流程,例如...

    Oracle 游标使用大全.pdf

    其中SQL%FOUND和SQL%NOTFOUND用于判断DML语句是否有影响到数据行,SQL%ROWCOUNT用于返回影响的行数,SQL%ISOPEN表示游标是否处于打开状态。 当在PL/SQL块中使用SELECT语句时,需要与INTO子句结合使用,将查询结果...

    sql存储过程

    如SQL%ISOPEN表示游标是否打开,SQL%FOUND和SQL%NOTFOUND用于判断最近操作的SQL语句是否有结果返回,SQL%ROWCOUNT用于获取操作影响的行数。这些属性在处理游标数据时非常有用。 ### 存储过程中的示例代码解析 在...

    Oracle游标使用

    隐式游标不需要显式声明,但它提供了几个有用的属性,如SQL%ROWCOUNT、SQL%FOUND、SQL%NOTFOUND和SQL%ISOPEN,用于检查操作状态和结果。 - **SQL%ROWCOUNT**:返回整型值,表示DML语句成功执行时影响的数据行数。 -...

    第7章 游标和异常处理.ppt

    隐式游标的属性有四种:SQL%ROWCOUNT、SQL%FOUND、SQL%NOTFOUND和SQL%ISOPEN。可以通过这些属性来了解操作的状态和结果,进而控制程序的流程。 隐式游标的属性: * SQL%ROWCOUNT:整型,代表DML语句成功执行的数据...

    Oracle游标使用.docx

    3. **SQL%NOTFOUND**: 与SQL%FOUND相反,当没有找到数据或者DML操作没有影响任何行时,此属性为TRUE。 4. **SQL%ISOPEN**: 这是一个布尔型属性,对于隐式游标,它在DML操作执行期间为TRUE,操作完成后变为FALSE,...

    sql2000与oracle的语法区别

    - Oracle 提供了 SQL%FOUND、SQL%NOTFOUND 和 SQL%ROWCOUNT 等属性来检查游标状态。例如,`SQL%FOUND` 为 TRUE 表示最近一次读取操作成功,而 `SQL%ROWCOUNT` 返回的是从游标中读取的记录数。 6. 实际应用代码: ...

    PL/SQL笔记pl/sql笔记

    - SQL%NOTFOUND:与SQL%FOUND相反,如果SQL语句没有影响任何行,返回TRUE。 - SQL%ROWCOUNT:返回SQL语句影响的行数。 例如,当更新emp表中deptno为v_deptno的行的sal字段时,可以检查SQL%FOUND来判断操作是否...

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

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

    sql和oracle语法区别.doc

    SQL Server的隐式游标属性有`SQL%FOUND`、`SQL%NOTFOUND`和`SQL%ROWCOUNT`,Oracle的相应属性也是这些,但名称不变。 - `SQL%FOUND`和`SQL%NOTFOUND`用于检查最近一次DML操作是否影响了数据,`SQL%ROWCOUNT`则返回...

    SQL Server和Oracle语法总结

    - SQL Server中的隐式游标可以通过`@@fetch_status`检查状态,`SQL%FOUND`和`SQL%NOTFOUND`用于Oracle。 - `SQL%FOUND`在Oracle中为TRUE表示最近一次操作成功返回数据,`SQL%NOTFOUND`与之相反。 - `SQL%ROWCOUNT...

    pl/sql个人笔记.

    ##### 3.3 SQL%NOTFOUND 属性 与`SQL%FOUND`相反,用于判断SQL语句是否未影响任何行: ```sql v_deptno emp.deptno%type := &no; UPDATE emp SET sal = sal * 1.1 WHERE deptno = v_deptno; IF SQL%NOTFOUND THEN ...

    SQL:第三章与Oracle服务器交互.ppt

    - **SQL%NOTFOUND**:相反,如果SQL语句没有找到匹配的行,则为TRUE。 - **SQL%ISOPEN**:检查游标是否已打开。 - **其他属性**:还包括SQL%TYPE,用于获取最近查询涉及的列的数据类型。 在实际应用中,PL/SQL...

    pl/sql学习文档

    - `SQL%NOTFOUND`:与`SQL%FOUND`相反,当没有影响的行时,其值为`TRUE`。 - `SQL%ROWCOUNT`:返回上一个DML操作影响的行数。 例如,当尝试更新指定部门员工的薪水时,可以使用`UPDATE`语句,并检查`SQL%FOUND`...

Global site tag (gtag.js) - Google Analytics