`
beagoodboy
  • 浏览: 97014 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

SQL*PLUS的异常处理

阅读更多
使用SQLP*PLUS时,如果执行SQL*PLUS的特定命令,只要没有错误,就认为是执行正常;相反地,如果执行SQL或者PL/SQL命令,如果返回了正确的文本,则执行正常。当SQL*PLUS执行碰到错误时,默认地,它会报错并继续执行。当人工在交互式地执行命令时,这个特性是非常好的,但是在脚本中执行时,更希望在碰到错误的时候SQLPLUS能够退出并报错。

SQLPLUS执行中的报错分为两种,一种是系统层面的报错,比如spool命令因为文件无法创建而失败时,所报的SP2-0606: Cannot create SPOOL file就是属于系统层面的报错,如果希望定制SQL*PLUS面对这种错误的处理方法,可以使用WHENEVER OSERROR这个命令,该命令的语法如下:
WHENEVER OSERROR {EXIT [SUCCESS|FAILURE|n|variable|:BindVariable]
                   [COMMIT|ROLLBACK] | CONTINUE [COMMIT|ROLLBACK|NONE]}


比如在SQL*PLUS中执行以下的一些命令:

SQL> WHENEVER OSERROR EXIT FAILURE
SQL> SPOOL /root/test
SP2-0606: Cannot create SPOOL file "/root/test.lst"
O/S Message: No such file or directory
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
$ echo $?
1


另一种是SQL或者PL/SQL执行出错,类似地,可以使用WHENEVER SQLERROR定制SQL*PLUS的行为,该命令的语法如下,具体的例子就不重复了。
WHENEVER SQLERROR {EXIT [SUCCESS|FAILURE|WARNING|n|variable|:BindVariable]
                    [COMMIT|ROLLBACK] | CONTINUE [COMMIT|ROLLBACK|NONE]}

分享到:
评论

相关推荐

    SQL*Plus用户指南与参考

    在错误处理和异常处理方面,SQL*Plus支持PL/SQL中的异常处理机制,如BEGIN...END块中的EXCEPTION部分,可以捕获并处理运行时错误。 最后,SQL*Plus还可以与其他Oracle工具集成,如SQL Developer,进一步提升数据库...

    Oracle官方文档中文版-SQLPlus快速参考

    - **异常处理**:`WHENEVER SQLERROR`定义在SQL错误发生时的动作,`WHENEVER OSERROR`处理操作系统错误。 4. **SQL*Plus交互模式** 在SQL*Plus中,用户可以输入SQL语句并立即得到结果,也可以编写完整的PL/SQL块...

    SQL_Plus.rar_SQL 表 操作_pl sql_plus

    6. **异常处理**:使用EXCEPTION部分捕获并处理运行时错误。 在这个实验中,你可能需要通过SQL Plus执行各种SQL语句和PL/SQL块,例如创建表、插入和查询数据,编写存储过程或函数,以及处理可能出现的异常情况。...

    oracle2007课件

    4. **异常处理**:通过BEGIN-EXCEPTION-END结构,可以捕获和处理运行时错误。 5. **存储过程和函数**:定义和调用自定义的数据库操作,提高代码复用性和性能。 6. **触发器**:自动响应特定的数据库事件,如INSERT、...

    oracle 开发工具

    6. **PL/SQL异常处理**:使用`BEGIN...EXCEPTION`块来捕获和处理异常,如`NO_DATA_FOUND`、`TOO_MANY_ROWS`和`USER_DEFINED`异常。 7. **存储过程和函数**:存储过程是一组PL/SQL语句,可执行特定任务;函数返回一...

    Plus SQL 程序设计

    **四、异常处理** PL/SQL提供了强大的异常处理机制,可以捕获并处理运行时错误。通过使用`BEGIN...EXCEPTION`块,我们可以预先定义对不同异常的响应,确保程序在遇到错误时能够优雅地处理,而不是突然崩溃。 **五...

    Oracle10g教程

    3. **异常处理**:通过BEGIN...EXCEPTION部分,你可以捕获并处理运行时错误,提高程序的健壮性。 4. **游标**:在处理大量数据时,游标允许你逐行处理结果集,提供了一种灵活的数据操作方式。 5. **存储过程和函数...

    Oracle Database 10g PL SQL 程序设计 笔记

    8. **异常处理**:通过`Exception`部分处理运行时错误,`WHEN OTHERS THEN`捕获所有未明确处理的异常,并可以使用`sqlerrm`获取错误信息。 9. **PL/SQL执行**:执行部分可以包含DML、DDL命令,使用内置的DBMS_...

    plsql培训教程

    - **异常处理**: 包括预定义异常和自定义异常,用于处理运行时错误。 ##### LESSON 1: SQL、SQL*Plus和PL/SQL基本概念 - **Oracle数据库系统**: - **对象-关系型数据库管理系统** (ORDBMS): Oracle支持对象-关系...

    oracle10g_pl/sql

    3. **PL/SQL异常处理** - **异常**:程序运行时的错误,如 divide_by_zero、no_data_found 等。 - **EXCEPTION块**:用于捕获和处理异常,可以定义自定义异常并使用RAISE语句抛出。 4. **PL/SQL与SQL的交互** - ...

    Oracle SQLPLUS基础及sqlplus命令详解

    - **异常处理**:通过异常处理机制来捕获和处理错误。 - **模块化**:可以创建可重用的过程和函数。 - **高性能**:通过减少网络传输次数来提高性能。 - **安全性**:可以限制用户对底层数据的直接访问。 #### ...

    oracle sql and pl/sql

    - 错误处理:通过异常处理机制来捕获和处理错误。 - 数据库触发器:当特定事件发生时自动执行代码块。 - 存储过程和函数:可以在数据库内定义并重用代码。 - 包(Packages):用于组织和管理程序单元。 3. **...

    oracle8i_9i数据库基础

    这部分将介绍如何利用PL/SQL进行复杂的逻辑处理和数据库编程,包括变量声明、流程控制结构、异常处理等。 在实际应用设计和开发中,理解并熟练运用SQL*PLUS和PL/SQL是至关重要的。本讲稿的特色在于以实例讲解,避免...

    ORACLE配置 配置PPT

    - **PL/SQL(Procedural Language/SQL)** 是Oracle扩展的SQL,增加了过程化编程元素,如变量、循环、条件判断和异常处理,用于编写存储过程、函数、触发器等。 2. **登录到SQL*Plus**: - **SQL*Plus** 是Oracle...

    OracleSQLPLUS基础及sqlplus命令详解.doc

    PL/SQL提供异常处理、循环、变量声明等功能,使得数据库操作更为灵活和强大。 在SQL*PLUS中,用户可以通过命令行界面执行SQL查询、运行PL/SQL块,以及执行各种数据库管理和维护任务。熟悉SQL*PLUS的命令,如`SET`...

    Oracle8i_9i数据库基础

    - **PL/SQL语言**:PL/SQL是Oracle提供的过程化扩展,支持变量声明、流程控制语句、异常处理等特性,可以用来编写复杂的数据库应用程序。 - **PL/SQL的优点**: - 性能高:代码直接在数据库服务器上执行; - ...

    ORACLE sqlplus命令

    Oracle SQL*Plus是Oracle数据库系统中的一个交互式命令行工具,它...这些是Oracle SQL*Plus的基础知识,实际操作中还有许多高级特性和技巧,例如游标、异常处理、动态SQL、绑定变量等,都需要在实践中不断学习和掌握。

Global site tag (gtag.js) - Google Analytics