当执行一条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
. TRUE
ELETE和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, %notfound 和 EXCEPTION的用法
在实际编程中,`SQL%NOTFOUND`可以帮助我们进行条件判断和流程控制。比如,当你尝试更新一个特定的记录,但不确定该记录是否存在时,可以结合`SQL%NOTFOUND`来决定后续的操作。下面是一个示例: ```sql DECLARE v_...
这个游标有四个关键属性:SQL%FOUND、SQL%NOTFOUND、SQL%ROWCOUNT和SQL%ISOPEN。SQL%FOUND和SQL%NOTFOUND是布尔值,分别表示DML语句是否找到匹配的行;SQL%ROWCOUNT返回受影响的行数。例如,`IF SQL%FOUND THEN ...`...
DML语句执行后,它们的结果会被保存在四个隐式游标属性中:SQL%FOUND、SQL%NOTFOUND、SQL%ROWCOUNT和SQL%ISOPEN。其中,SQL%FOUND和SQL%NOTFOUND是布尔值,用来判断是否找到数据;SQL%ROWCOUNT是一个整数值,表示受...
这个隐式游标有四个属性:SQL%FOUND、SQL%NOTFOUND、SQL%ROWCOUNT和SQL%ISOPEN。例如,SQL%FOUND和SQL%NOTFOUND分别表示是否找到匹配的行,而SQL%ROWCOUNT则返回受影响的行数。这些属性可以用来控制程序流程,例如...
其中SQL%FOUND和SQL%NOTFOUND用于判断DML语句是否有影响到数据行,SQL%ROWCOUNT用于返回影响的行数,SQL%ISOPEN表示游标是否处于打开状态。 当在PL/SQL块中使用SELECT语句时,需要与INTO子句结合使用,将查询结果...
如SQL%ISOPEN表示游标是否打开,SQL%FOUND和SQL%NOTFOUND用于判断最近操作的SQL语句是否有结果返回,SQL%ROWCOUNT用于获取操作影响的行数。这些属性在处理游标数据时非常有用。 ### 存储过程中的示例代码解析 在...
隐式游标不需要显式声明,但它提供了几个有用的属性,如SQL%ROWCOUNT、SQL%FOUND、SQL%NOTFOUND和SQL%ISOPEN,用于检查操作状态和结果。 - **SQL%ROWCOUNT**:返回整型值,表示DML语句成功执行时影响的数据行数。 -...
隐式游标的属性有四种:SQL%ROWCOUNT、SQL%FOUND、SQL%NOTFOUND和SQL%ISOPEN。可以通过这些属性来了解操作的状态和结果,进而控制程序的流程。 隐式游标的属性: * SQL%ROWCOUNT:整型,代表DML语句成功执行的数据...
3. **SQL%NOTFOUND**: 与SQL%FOUND相反,当没有找到数据或者DML操作没有影响任何行时,此属性为TRUE。 4. **SQL%ISOPEN**: 这是一个布尔型属性,对于隐式游标,它在DML操作执行期间为TRUE,操作完成后变为FALSE,...
- Oracle 提供了 SQL%FOUND、SQL%NOTFOUND 和 SQL%ROWCOUNT 等属性来检查游标状态。例如,`SQL%FOUND` 为 TRUE 表示最近一次读取操作成功,而 `SQL%ROWCOUNT` 返回的是从游标中读取的记录数。 6. 实际应用代码: ...
- SQL%NOTFOUND:与SQL%FOUND相反,如果SQL语句没有影响任何行,返回TRUE。 - SQL%ROWCOUNT:返回SQL语句影响的行数。 例如,当更新emp表中deptno为v_deptno的行的sal字段时,可以检查SQL%FOUND来判断操作是否...
隐式游标的属性有四种,分别是 SQL %ISOPEN、SQL %FOUND、SQL %NOTFOUND、SQL %ROWCOUNT。这些属性可以用来判断游标的状态和结果,进而控制程序的流程。 在使用游标时,需要注意以下几点: 1. 游标需要在声明部分...
SQL Server的隐式游标属性有`SQL%FOUND`、`SQL%NOTFOUND`和`SQL%ROWCOUNT`,Oracle的相应属性也是这些,但名称不变。 - `SQL%FOUND`和`SQL%NOTFOUND`用于检查最近一次DML操作是否影响了数据,`SQL%ROWCOUNT`则返回...
- SQL Server中的隐式游标可以通过`@@fetch_status`检查状态,`SQL%FOUND`和`SQL%NOTFOUND`用于Oracle。 - `SQL%FOUND`在Oracle中为TRUE表示最近一次操作成功返回数据,`SQL%NOTFOUND`与之相反。 - `SQL%ROWCOUNT...
##### 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%NOTFOUND**:相反,如果SQL语句没有找到匹配的行,则为TRUE。 - **SQL%ISOPEN**:检查游标是否已打开。 - **其他属性**:还包括SQL%TYPE,用于获取最近查询涉及的列的数据类型。 在实际应用中,PL/SQL...
- `SQL%NOTFOUND`:与`SQL%FOUND`相反,当没有影响的行时,其值为`TRUE`。 - `SQL%ROWCOUNT`:返回上一个DML操作影响的行数。 例如,当尝试更新指定部门员工的薪水时,可以使用`UPDATE`语句,并检查`SQL%FOUND`...