`
wwty
  • 浏览: 541487 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

oracle的exception和rownum

阅读更多

 

SELECT count(B.VALUE_SX_BTXM) INTO V_BTBZCOUNT FROM DM_SX_BTXM A, XX_SX_BTXM B 

WHERE A.DM_BTXM = B.DM_BTXM 

AND A.DM_SX_BTXM = B.DM_SX_BTXM 

AND A.DM_BTXM = VI_DM_BTXM 

AND A.DM_SX_BTXM =VI_DM_SX_BTXM 

AND b.dm_xzqh=VI_XZQH 

AND b.btnd = VI_BTND 

AND A.LX_SX_BTXM = '1' AND A.XY_BZ = 'Y' 

AND B.XY_BZ = 'Y'; 

exception 

when NO_DATA_FOUND

 then V_BTBZCOUNT := 0 ; 

END; 

 

 

oracle的异常也分内部异常和外部异常,内部异常主要是系统异常,而外部异常是自定义的异常,比如上面的一段代码就是定义了一个异常:当查询的sql没有查询到数据:NO_DATA_FOUND 时抛出了一个异常,并且在then后面做了异常的后续处理

 

 

rownum

oracle没有limit,在Oracle中,要按特定条件查询前N条记录,用个rownum就搞定了。

不能对rownum用">",这也就意味着,如果你想用
select * from emp where rownum > 5
则是失败的。

rownum如果单独用=,也只有在rownum=1时才有用。
使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件,所以无法查到rownum = n(n>1的自然数)。

那如何才能找到第二行以后的记录呀。可以使用以下的子查询方法来解决。注意子查询中的rownum必须要有别名,否则还是不会查出记录来,这是因为rownum不是某个表的列,如果不起别名的话,无法知道rownum是子查询的列还是主查询的列。
SQL>select * from(select rownum no ,id,name from student) where no>2;

分享到:
评论

相关推荐

    .Net连接Oracle

    当处理Oracle数据库时,应捕获并处理可能出现的`OracleException`。这些异常可能与网络问题、权限错误、语法错误或数据库状态有关。 8. **关闭连接** 记住,在完成所有数据库操作后,要关闭打开的连接和命令,以...

    通用ORACLE存储过程实现分页和查询

    分页通常通过LIMIT和OFFSET关键字在SQL查询中实现,但在Oracle中,我们使用ROWNUM伪列和子查询来达到相同的效果。ROWNUM是在查询结果集返回之前分配的一个整数值,表示每行的顺序。 创建一个通用的分页存储过程,...

    SqlServer转换Oracle.docx

    - **TOP子句**:SQL Server中的`TOP`子句在Oracle中可以使用`WHERE ROWNUM 替代。 - **GUID生成**:SQL Server中的`NEWID()`函数在Oracle中可以通过自定义函数实现,例如文档中提供的`NEWID`函数示例。 #### 六、...

    Oracle 数据库傻瓜编程1000问 CHM 格式版.rar

    - 分页查询:使用ROWNUM和OFFSET/FETCH子句实现数据分页。 - 分区表:了解Oracle的分区技术,提高大数据量查询的效率。 3. **PL/SQL编程** - PL/SQL块结构:学习BEGIN、END、DECLARE、EXECUTE等关键字的用法。 ...

    富士通内部培训ORACLE资料

    5. **自定义异常**:在PL/SQL中,可以使用`EXCEPTION`块定义自定义异常,以便更精确地处理错误和异常情况。 6. **十进制与十六进制转换**:Oracle提供了`TO_NUMBER`和`TO_CHAR`函数进行数值格式的转换,而`HEXTORAW...

    ORACLE转DB2对照全解

    **注意:** Oracle和DB2都支持使用`EXCEPTION`块来处理异常。 #### 六、Package初始化 **Oracle:** ```sql CREATE OR REPLACE PACKAGE pkg1 AS PROCEDURE init; END pkg1; / CREATE OR REPLACE PACKAGE BODY pkg1...

    oracle转DB2 对照

    - **Oracle** 和 **DB2** 都支持异常处理和条件处理。 - Oracle示例: ```sql DECLARE PRAGMA EXCEPTION_INIT(e, -20000); BEGIN -- some code that may raise exception e EXCEPTION WHEN e THEN -- handle...

    Oracle数据库经典学习教程

    - Oracle版本发展:从最初版本到Oracle7、Oracle8i、Oracle9i,再到Oracle10g和Oracle11g,尽管不同版本之间存在差异,但其核心操作和理念保持一致。 - **Oracle安装** - Oracle数据库产品可以免费下载,但部分...

    oracle 增加,删除,修改和分页存储过程

    它通常会结合使用`ROWNUM`伪列或者Oracle 12c引入的`FETCH NEXT`子句来实现分页。 在实现这些存储过程时,我们需要遵循以下最佳实践: - **异常处理**:确保所有可能的错误都通过`EXCEPTION`部分捕获并处理,以...

    java调用oracle存储过程示例+分页示例

    ### Java调用Oracle存储过程与分页示例详解 #### 一、无返回值的存储过程调用 在Java中调用Oracle存储过程时,若该过程无...这些示例涵盖了基本的调用流程和常见需求,有助于理解和应用Java与Oracle的集成开发。

    Oracle PLSQL语法大全及实例讲解.pdf

    Oracle PL/SQL是一种强大的数据库编程语言,用于在Oracle数据库中执行复杂的逻辑和处理。它扩展了标准SQL,提供了声明变量、控制流程结构(如条件语句和循环)、处理异常以及与数据交互的能力。 1. **语句块**: -...

    oracle入门教程大全

    2. 排序(ORDER BY)、分页(LIMIT或ROWNUM)和条件查询(WHERE子句)。 3. 集合操作:UNION, UNION ALL, INTERSECT, EXCEPT。 通过"Oracle入门教程大全",初学者可以逐步掌握Oracle数据库的基础知识,了解SQL*Plus...

    oracle的 分页sql语句

    Oracle 数据库提供了多种方式进行分页处理,其中利用 `ROWNUM` 函数是最常用的方法之一。 #### 二、基本概念 在开始之前,我们首先了解几个关键的概念: - **ROWNUM**: 是 Oracle 内置的一个伪列,用于返回每一行的...

    ORACLE入门基础,本地动态SQL执行语句

    SELECT ROWID INTO X FROM TAB WHERE ROWNUM = 1; EXCEPTION WHEN BAD_ROWID THEN DBMS_OUTPUT.PUT_LINE('无法从此视图查询 ROWID'); END; ``` 其中 `-01445` 是 Oracle 错误号,对应于 `BAD_ROWID` 异常。 ###...

    Oracle 分页存储过程

    catch (OracleException on) { throw on; } return dt; } ``` 以上代码展示了如何通过.NET框架调用Oracle存储过程,包括设置参数值、参数方向以及处理异常情况等关键步骤。这为开发人员提供了一个实用的参考...

    Oracle PLSQL入门知识.doc

    在Oracle数据库环境中,PL/SQL是开发存储过程、函数、包和触发器的主要工具,使得数据库管理更加高效和灵活。 1. PL/SQL简介: PL/SQL全称Procedural Language/SQL,它是Oracle数据库提供的一个内置编程语言,允许...

Global site tag (gtag.js) - Google Analytics