`

Oracle Exception

 
阅读更多

使用Oracle EXCEPTION

抛出异常:
通过RAISE语句,用户自定义异常可以被显式抛出,预定义异常是当有关oracle错误产生时隐式抛出的。当与异常无关的某oracle错误产生时,也会产生异常。这种异常可以被OTHERS处理器捕获。预定义异常也可以通过RAISE语句显式抛出。异常抛出后就可以通过Exception when对异常进行处理。

通用异常处理:
EXCEPTION
WHEN OTHERS THEN
v_err_code := SQLCODE;
v_err_info := substr(SQLERRM, 1, 200);
dbms_output.put_line('ORA-' || v_err_code || ': ' || v_err_info);
oracle错误信息的最大长度为512字节,SQLCODE返回当前错误代码,SQLERRM返回当前错误信息(预定义的异常中包含了错误代码,dbms_output.put_line(v_err_info);)。SQLCODE和SQLERRM的值先赋给本地变量,然后才能用于SQL语句中,因为这些函数是过程化的,它们不能直接用于SQL语句中。
EXCEPTION_INIT编译指示:
这可以将自定义的异常与某特定oracle错误关联起来。通过这种方式就能够捕获这种特定错误,而不是通过OTHERS处理器。SQLCODE与SQLERRM将返回所发生的oracle错误的代码和消息文本,而不是返回1与"User-Defined Exception".

使用RAISE_APPLICATION_ERROR:
通过它可以创建自己的错误消息,比命名异常更具有描述性。
RAISE_APPLICATION_ERROR(error_number,error_message,[keep_error]);
error_number介于-20000~-20999之间,error_message错误消息文本,keep_error是一个boolean值。

分享到:
评论

相关推荐

    Oracle Exception汇总(自定义Oracle异常)

    为了避免程序中断,可以使用`EXCEPTION WHEN NO_DATA_FOUND THEN`来捕获并处理这个异常。 2. **TOO_MANY_ROWS** (ORA-01422): 当`SELECT INTO`语句返回多于一行数据时,会出现此异常。在处理时,通常需要修改查询以...

    oracle常见Exception

    1. **添加异常处理**:使用EXCEPTION块来捕获并处理`NO_DATA_FOUND`异常。 2. **使用IF-NULL语句**:使用IF-NULL或其他条件语句来处理可能为空的情况。 #### TIMEOUT_ON_RESOURCE (ORA-00051) **异常描述:** 当...

    C#使用Oracle.ManagedDataAccess.dll轻松访问oracle数据库

    Oracle.ManagedDataAccess.dll是Oracle公司为.NET Framework提供的一款托管数据访问组件,它允许开发者无需安装Oracle客户端即可直接在C#应用中访问Oracle数据库。这个组件完全由.NET Framework管理,因此消除了对...

    C#连Oracle 类

    catch (System.Data.OracleClient.OracleException ex) { connection.Close(); throw new Exception(ex.Message); } return ds; } } ``` 此方法接受一个SQL查询语句作为输入,并返回一个填充了查询结果的`...

    Oracle.ManagedDataAccess.dllC#连接Oracle10g,11g,12g所需的DLL

    例如,使用`OracleTransaction`类进行事务控制,使用`OracleException`捕获和处理错误,使用`OracleCommand`的`ExecuteNonQuery`、`ExecuteReader`或`ExecuteScalar`方法执行SQL语句。同时,为了提高性能,可以考虑...

    Oracle_存储过程exception异常处理大全及实例经典最终.docx

    ### Oracle 存储过程 Exception 异常处理详解 #### 1. 异常处理概念 在 Oracle 存储过程中,异常处理是一项非常重要的技术,它能够帮助开发人员处理那些不可预见的情况,确保程序的健壮性和稳定性。异常处理主要...

    oracle.dataaccess.dll

    1. “Oracle.DataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified”:检查TNS_ADMIN环境变量和tnsnames.ora配置是否正确。 2. “Could not load file or ...

    Oracle.ManagedDataAccess.dll.rar

    8. **异常处理**: 在整个过程中,应适当地捕获和处理可能出现的OracleException和其他异常,确保程序的健壮性。 在C#代码中,使用Oracle.ManagedDataAccess.dll的例子可能如下: ```csharp using Oracle....

    VS2019+EF+Oracle+DBfirst

    5. **处理异常和错误**:在开发过程中,可能会遇到各种运行时错误和异常,如OracleException。理解Oracle的错误代码和异常处理机制,能帮助我们更快地定位和解决问题。 6. **性能优化**:Oracle与EF的结合使用需要...

    oracle ManagedDataAccess连接实例

    catch (OracleException ex) { Console.WriteLine($"连接失败:{ex.Message}"); } finally { if (connection.State == ConnectionState.Open) connection.Close(); } } Console.ReadLine(); } } ``` 在...

    OracleHelper

    6. **异常处理**:OracleHelper会包含适当的错误处理机制,捕获并处理可能出现的OracleException或其他相关异常,提供友好的错误信息给调用者。 7. **性能优化**:OracleHelper可能会利用Oracle数据库特有的特性,...

    Oracle.DataAccess

    4. **OracleException**: 这是Oracle DataAccess 抛出的异常类,当数据库操作失败时,系统会抛出OracleException,开发人员可以通过捕获并处理这些异常来实现错误处理。 5. **事务处理**: Oracle.DataAccess 支持...

    C#连接Oracle数据库Oracle.ManagedDataAccess

    catch (OracleException ex) { Console.WriteLine("Error: " + ex.Message); } } } } ``` 在这个示例中,我们首先定义了一个连接字符串,其中包含了数据库服务器的地址、端口、服务名以及用户名和密码。然后,...

    Oracle.ManagedDataAccess.rar

    9. **错误处理**:OracleException类用于捕获和处理Oracle数据库操作过程中可能出现的错误。 10. **高级特性**:ODP.NET还包括对LOB(大型对象)的支持,如BFILE、CLOB、NCLOB、BLOB等;支持高级复制、物化视图、...

    C#调用oci直连Oracle

    你需要捕获并处理可能出现的异常,比如OracleException。 6. **安全考虑**:使用这种方式时,需要注意SQL注入的安全风险。确保所有的SQL语句都经过参数化处理,避免直接拼接字符串。 7. **性能优化**:虽然oci.dll...

    System.Data.OracleClient

    5. OracleException:表示在处理Oracle数据库时出现的错误或异常。 二、OracleClient的使用步骤 1. 创建连接:使用OracleConnection类的构造函数,指定连接字符串来创建数据库连接。连接字符串通常包括服务器名称...

    Oracle.DataAccess.dll x64 x86 批量操作

    在开发过程中,可能还需要处理异常,例如OracleException,以及进行事务管理,确保在出现错误时能够回滚操作。此外,为了优化性能,可以调整Oracle的服务器配置,如设置合适的批处理大小、缓存大小等。 总的来说,...

    访问ORACLE存储过程

    } catch (OracleException ex) { Console.WriteLine("Exception occurred!"); Console.WriteLine("The exception message is: {0}", ex.Message.ToString()); } finally { Console.WriteLine("------------------...

    Oracle10G数据库操作DLL文件

    此外,`Oracle.DataAccess.dll`还提供了异常处理机制,如`OracleException`类,用于捕获和处理与Oracle数据库交互时可能出现的错误。通过捕获这些异常,开发者可以编写健壮的代码,对各种可能出现的问题进行适当的...

    Pro ODP.NET for Oracle Database 11g

    7. 错误处理与日志记录:ODP.NET提供了丰富的异常处理机制,通过捕获OracleException,可以获取详细的错误信息。同时,开发者还可以利用OracleLogonAdapter进行日志记录,以便追踪和调试应用程序。 8. 性能优化:...

Global site tag (gtag.js) - Google Analytics