zoukankan      html  css  js  c++  java
  • PL/SQL 学习笔记 一

    1.PL/SQL块结构

    Declare

    /*

    * 定义部分--定义常量,变量,复杂数据类型,游标,例解

    */

    Begin

    /*

    * 执行部分--PL/SQL语句和SQL语句

    */

    Exception

    /*

    *异常处理或例外处理部分--处理运行出现的错误

    */

    End;/*块结束标记*/

    其中定义部分以Declare开始,该部分是可选的;执行部分以begin开始,该部分是必须的;例外处理部分以exception开始,该部分是可选的;而End则是PL/SQL块的结束标记,要注意的是Declare,begin,exception后面没有分号,而end后必须加分号。

    2.PL/SQL块分类

    包含四类:匿名块,命名块,子程序,触发器

    a.匿名块

    指没有名称的PL/SQL块,匿名块既可以内嵌到应用程序中,也可以在交互式环境中直接使用。

    For Eg.

    declare

    v_avgsal number(6,2)

    begin

    select avg(sal) into v_avgsal from emp

    where deptno=&no;

    dbms_output.put_line('平均工资:'||v_avgsal);

    End;

    输入的值为:10

    平均工资:2222.00

    b.命名块

    指具有特定名称标识的PL/SQL块,命名块与匿名块非常类似,只不过在PL/SQL块前使用<<>>加以标记,当使用嵌套块时,为了区分多级嵌套层次关系,可以使用命名块加以区分。

    For Eg.

    <<outer>>

    declare

    v_deptno number(2);

    v_dname varchar2(10);

    begin

    <<inner>>

    begin

    select deptno into v_deptno from emp

    where lower(ename)=lower('&name');

    End;--<<inner>>

    select dname into v_dname from dept

    where deptno=v_deptno;

    dbms_output.put_line('部门名:'||v_dname);

    end;--<<outer>>

    c.子程序

    包含过程,函数,包。当开发PL/SQL子程序时,既可以开发客户端的子程序,也可以开发服务器端的子程序。客户端子程序主要用在Developer中,而服务器子程序可以用在任何应用程序中。通过将商业逻辑和企业规则集成到PL/SQL子程序中,可以简化客户端程序的开发和维护,并且提高应用程序的性能。

    包中可以包含函数和过程 For Eg:

    d.触发器

    触发器是指隐含执行的存储过程。当定义触发器时,必须要制定触发时间以及触发操作,常用的出发时间包括INSERT,UPDATE和DELETE语句,而触发操作实际是一个PL/SQL块。在SQL*PLUS中建立触发器是使用CREATE TRIGGER 命令来完成的。

    For Eg.

  • 相关阅读:
    POLARDB与其他关系型数据库对比
    美团关于分布式ID实践方案
    CRM、DMP、CDP概念解析
    TIDB简介
    美团关于分布式ID实践方案细节
    美团在TIDB方面的实践
    设计模式之桥梁模式
    【转】Hibernate和IBatis对比
    Eclipse插件安装
    【转】揭开正则表达式的神秘面纱
  • 原文地址:https://www.cnblogs.com/FeiyueHang/p/2093555.html
Copyright © 2011-2022 走看看