`

sql 中 sql%rowcount 判断执行SQL受影响的行数

SQL 
阅读更多
sql  中 sql%rowcount 判断执行SQL受影响的行数

例子:
update work_order
       set order_state = '1'
     where line_id = p_line_id
       and order_state = '0'
       and order_type = 'DPY'
       and ORDER_PRIORITY = (select min(ORDER_PRIORITY)
                               from work_order
                              where order_state = '0'
                                and order_type = 'DPY'
                                and LINE_ID = p_line_id
                                and order_priority > 0
                              group by LINE_ID)
        and exists
               (select 1
                        from product_level pl
                       where pl.pid = pid
                         and pl.child_pid =
                             (select (select pid
                                        from product_maintain pm
                                       where pm.product_number =
                                             rw.material_number
                                         and pm.rstate = rw.material_rstate)
                                from routing_wip rw
                               where rw.sn = p_sn))
        and rownum <= 1;

   if  sql%rowcount > 1 then      //代表上面update语句影响的行数

   raise_application_error (-20015,
                           'Work order with same priority in the waiting queue ! ');


   end if ;
分享到:
评论

相关推荐

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

    对于`UPDATE`, `INSERT` 或 `DELETE` 语句,`SQL%ROWCOUNT` 存储的是受影响的行数。 在实际开发中,这三个变量经常一起使用,帮助开发者更好地控制流程,确保数据库操作的正确性。例如,你可以根据`SQL%ROWCOUNT` ...

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

    - **SQL%ROWCOUNT**:返回最近SQL语句影响的行数,是一个整数值。 - **SQL%FOUND**:布尔属性,如果最近的SQL语句影响了至少一行,其值为TRUE。 - **SQL%NOTFOUND**:相反,如果SQL语句没有找到匹配的行,则为...

    pl/sql个人笔记.

    与`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 DBMS_OUTPUT.PUT_LINE('未找到...

    PL/SQL笔记pl/sql笔记

    - SQL%ROWCOUNT:返回SQL语句影响的行数。 例如,当更新emp表中deptno为v_deptno的行的sal字段时,可以检查SQL%FOUND来判断操作是否成功,并通过DBMS_OUTPUT.PUT_LINE输出相应的信息。 以上是PL/SQL的基础知识,...

    sql2000与oracle的语法区别

    - Oracle 的例子则展示了如何在一个事务中处理数据,通过 SQL%NOTFOUND 来决定是否执行删除操作。 7. 连接符: - SQL Server 2000 使用 `+` 符号连接字符串。 - Oracle 则使用 `||` 符号完成同样的任务。 8. ...

    sql和oracle语法区别.doc

    - `SQL%FOUND`和`SQL%NOTFOUND`用于检查最近一次DML操作是否影响了数据,`SQL%ROWCOUNT`则返回受影响的行数。 6. 流程控制: - SQL Server使用`IF...THEN...ELSE`结构进行条件判断,而Oracle不仅支持这种结构,还...

    PL/SQL学习笔记6

    它不需要显式声明,但可以通过`SQL%ROWCOUNT`等属性来检查操作影响的行数。 - 另一种隐式游标是`CURSOR FOR LOOP`,它可以简化遍历查询结果的过程。例如: ```sql DECLARE CURSOR c FOR SELECT column1, column2...

    Oracle之隐式游标的使用方法.pdf

    例如,如果执行一个DELETE操作,隐式游标会保存受影响的行数。对于INSERT或UPDATE,它会记录是否成功执行以及影响的行数。对于SELECT INTO,如果查询返回多行,系统会抛出错误,因为隐式游标只允许处理单行结果。 2...

    PLSQL游标编程培训内含实例

    在上述示例中,`SQL%ROWCOUNT`表示受影响的行数,`SQL%NOTFOUND`和`SQL%FOUND`分别表示没有找到匹配的行或找到了至少一行。 通过PLSQL游标编程,我们可以实现更灵活的数据处理,比如循环处理结果集、条件判断等。在...

    pl/sql试题,oracle基础知识

    10. `SQL%ROWCOUNT`返回最后执行的DML语句(数据操纵语言,如INSERT、UPDATE或DELETE)影响的行数(选项a)。这不包括SELECT语句,除非在`BULK COLLECT INTO`操作中使用。 了解这些基本概念对于理解和使用Oracle...

    Oracle 游标使用大全.pdf

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

    mysql和SQLserver区别.docx

    SQL Server 中的 @@ROWCOUNT 变量可以获取最近一次查询或操作所影响的行数,而在 MySQL 中,需要使用 row_count() 函数来获取最近一次查询或操作所影响的行数。需要注意的是,MySQL 的 row_count() 函数只对 update...

    SQL游标实例

    SQL游标是数据库管理系统中一个重要的概念,它允许程序员或数据库管理员逐行处理查询结果集,而不仅仅是一次性处理整个结果集。在处理大量数据或需要按特定顺序执行操作时,游标显得尤为有用。本篇文章将深入探讨SQL...

    SQL_SET.rar_SetSQL_sql_sql set _sql set connectattr_sql set rouc

    在SQL语言中,"SET"命令是一个非常关键的组成部分,用于设置各种会话级的配置选项,以影响数据库的运行方式。"SQL_SET.rar_SetSQL_sql_sql set _sql set connectattr_sql set rouc"这个标题可能是在暗示一系列关于...

    SQL删除注入数据的SQL脚本

    - 记录受影响的行数(`@@ROWCOUNT`)。 - 如果有行被更新,则输出相关信息。 5. **结束处理**: - 输出总共更新的行数。 - 关闭并释放游标资源。 #### 使用注意事项 - 在执行该脚本前,请确保备份数据库,以防...

    PLSQL编程04

    在这个例子中,`SQL%ROWCOUNT`属性用于获取受影响的行数,而无需显式游标。 游标还有其他属性和操作,例如 `%ISOPEN` 检查游标是否已打开,`%FOUND` 检查最近一次 `FETCH` 是否成功,`%ROWCOUNT` 获取已处理的行数...

    SQL Server EXEC和sp_executesql的区别

    在SQL Server中,执行动态SQL或存储过程时,开发人员通常面临选择使用`EXEC`还是`sp_executesql`的问题。这两种方法虽然都能达到目的,但在功能、性能及安全性等方面存在显著差异。本文将详细介绍这两者的区别,并...

    SQL Server遍历表中记录的2种方法(使用表变量和游标)

    在SQL Server中,遍历表中的记录是数据库操作中常见的一种任务,特别是在处理逐行处理数据或执行复杂逻辑时。本文将深入探讨两种方法:使用表变量和使用游标。 首先,我们来看如何通过表变量来遍历记录。表变量在...

    ORACLE学习资料第五章.doc

    通常,你可以在DML操作后立即查询%ROWCOUNT来获取受影响的行数,例如:`dbms_output.put_line('rowCount = '||SQL%ROWCOUNT);` 4. 游标与ROWTYPE: ROWTYPE是一个特殊的记录类型,它代表表的一行数据的所有列。在...

Global site tag (gtag.js) - Google Analytics