`

PL/SQL NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT

SQL 
阅读更多

      今天突然遇到有人问:NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT的区别?所以就说一下我自己的理解吧。

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

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

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

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

我只是对三者做了简单的概念介绍,抛砖引玉!

分享到:
评论
1 楼 sjmei 2011-03-05  
嗯,不错,学习了

相关推荐

    PL/SQL学习资料

    它们可以是显式的(DECLARE CURSOR...FETCH)或隐式的(%ROWCOUNT、%NOTFOUND等属性)。 6. **存储过程和函数**:存储过程是一组预编译的PL/SQL语句,可以在数据库中存储和调用,减少网络通信,提高性能。函数与之...

    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 ...

    PL/SQL笔记pl/sql笔记

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

    PL/SQL实现获得所有表名及列名到表

    EXIT WHEN CUR_TABLE%NOTFOUND; T_NAME := CUR01.TABLE_NAME; C_NAME := CUR01.COLUMN_NAME; INSERT INTO table_tmp VALUES (U_NAME, T_NAME, C_NAME); END LOOP; U_COUNT := CUR_TABLE%ROWCOUNT; CLOSE CUR_...

    Oracle PL/SQL语言初级教程

    - %NOTFOUND: 表示未找到符合条件的行。 - %ROWCOUNT: 返回从打开游标以来所处理的行数。 - **使用**: - 显式游标:需要手动定义、打开、关闭。 - 隐式游标:由PL/SQL自动管理,无需显式声明和打开。 #### 九、...

    编程进阶性--PL/SQL

    PL/SQL提供了一些预定义的异常,如 `NO_DATA_FOUND`、`TOO_MANY_ROWS` 等。 #### 十、综合案例 **10.1 案例背景** 假设需要为tempuser用户创建一个名为`testtable`的数据表,并自动插入100条记录,其中`...

    pl/sql学习文档

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

    pl/sql试题,oracle基础知识

    9. `%FOUND`、`%OPEN`和`%ROWCOUNT`是游标(Cursor)的属性,而`%NOTFOUND`不是(选项a)。`%NOTFOUND`用于检查是否在当前游标位置找到了任何行。 10. `SQL%ROWCOUNT`返回最后执行的DML语句(数据操纵语言,如...

    oracle的PLSQL编程之过程全部案例

    例如,在更新操作后,我们可以检查`sql%found`和`sql%notfound`来确定是否有行被更新,通过`sql%rowcount`获取更新的行数: ```sql begin update emp set ENAME='ALEARK' WHERE EMPNO=7469; if sql%isopen then ...

    pl sql 编程教学

    预定义的异常如NO_DATA_FOUND、TOO_MANY_ROWS等可以直接使用,也可以自定义异常。 **第六节:PL/SQL示例** 示例是学习PL/SQL的关键,它们展示了如何组合上述概念来解决问题。例如,创建一个存储过程来更新表中的...

    Oracle PLSQL语言初级教程之游标

    在执行DML语句后,PL/SQL使用四个隐式游标属性来控制程序流程和获取状态信息:`SQL%FOUND`, `SQL%NOTFOUND`, `SQL%ROWCOUNT`和`SQL%ISOPEN`。`SQL%FOUND`和`SQL%NOTFOUND`是布尔值,分别表示是否有数据被找到和是否...

    Oracle 游标使用大全.doc

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

    plSql介绍

    EXIT WHEN cursor_name%NOTFOUND; -- 处理数据 END LOOP; CLOSE cursor_name; END; ``` **五、异常处理** PL/SQL提供了异常处理机制,允许开发者捕获并处理运行时错误。例如: ```sql BEGIN -- 可能会抛出...

    Oracle 游标使用大全

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

    PLSQL最佳实践

    - 游标提供了几种属性,如`%FOUND`、`%NOTFOUND`、`%ROWCOUNT`等。 - 示例:`IF c_employees%FOUND THEN DBMS_OUTPUT.PUT_LINE('Records found.'); END IF;` **3.10 CASE** - `CASE`语句提供了一个选择结构,用于...

    oracle游标的使用

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

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

    在Oracle数据库中,`SQL%NOTFOUND` 是一个非常实用的PL/SQL内置变量,它是一个布尔类型(Boolean),用于判断最近执行的DML(Data Manipulation Language)语句(如UPDATE, INSERT, DELETE或SELECT INTO)是否影响了...

    oracle游标使用大全

    这个游标有三个主要属性:SQL%FOUND, SQL%NOTFOUND和SQL%ROWCOUNT,用于检查查询是否成功以及处理的行数。 - 显式游标:显式游标允许我们更精细地控制查询结果,包括遍历结果集、读取当前行数据、移动到下一行等。...

    Oracle数据库游标使用大全

    Oracle数据库游标是PL/SQL编程中不可或缺的一部分,它们允许程序逐行处理查询结果,提供了更灵活的数据操作方式。在Oracle数据库中,游标主要分为两种类型:隐式游标和显式游标。 1. **隐式游标**: - 当在PL/SQL...

Global site tag (gtag.js) - Google Analytics