PLSQL(Procedural Language/SQL)

        PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL则是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。
PL/SQL架构

        PL/SQL 的编码和运行时系统是一项技术,而不是一个独立的产品。可以把这项技术想象成一个能够编译并运行PL/SQL 块和子程序的引擎。这个引擎可以安装在Oracle 服务器上或安装在Oracle Forms,Oracle Reports 这样的开发工具中。所以,PL/SQL 可以在两种环境中存在:
        1. Oracle 数据库服务器
        2. Oracle 开发工具
        这两种环境是独立的。PL/SQL 虽被绑定到Oracle 服务器上,但在某些工具中是无法使用的。在这两种环境下,PL/SQL 引擎都能接受有效的PL/SQL 块或子程序。下图是PL/SQL 引擎处理匿名块的过程,引擎会处理过程化语句,而把SQL 语句发送给Oracle 服务器端的SQL 语句执行程序(SQL Statement Executor)来处理。

        

PL / SQL程序的构建块 

        PL/SQL块由关键字DECLARE,BEGIN,EXCEPTION和END定义,它们将块分为三个部分:

  1. 声明性:声明变量,常量和其他代码元素的语句,然后可以在该块中使用
  2. 可执行文件:执行块时运行的语句
  3. 异常处理:一个特殊结构化的部分,可用于“捕获”或捕获可执行部分运行时引发的任何异常

捕获异常

        捕获可能引发的任何异常,并显示错误消息,该错误消息由SQLERRM函数(由Oracle提供)返回。

        EXCEPTION WHEN OTHERS

          DBMS_OUTPUT.put_line(SQLERRM);

        每个异常都有一个错误代码和与之关联的错误消息。Oracle Database提供了在处理异常时检索这些值的函数。

描述 如何获得它
错误代码。当您需要查找可能导致此类问题的一般信息时,此代码非常有用。 SQLCODE 
注意:您不能在SQL语句中调用此函数。
错误消息。此文本通常包含特定于应用程序的数据,例如约束的名称或与问题关联的列。 SQLERRM或DBMS_UTILITY.FORMAT_ERROR_STACK 
注意:您不能在SQL语句中调用SQLERRM。
发生错误的行。此功能已在Oracle数据库10g第2版中添加,对于跟踪错误原因非常有帮助。 DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
执行调用堆栈。这回答了“我如何到达这里?”的问题,并向您展示了通过代码到达DBMS_UTILITY.FORMAT_CALL_STACK被调用点的路径。 DBMS_UTILITY.FORMAT_CALL_STACK

        当块的可执行部分中引发异常时,该部分中的所有其余语句都不会执行。相反,控制权转移到异常部分。

        这种设计的优点在于所有与异常相关的活动都集中在PL / SQL块的一个区域,使开发人员可以轻松理解和维护所有错误管理逻辑。

        o22plsql-f1a

猜你喜欢

转载自blog.csdn.net/panjin72/article/details/81457136