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.

  • 相关阅读:
    gerrit 修改前一次提交的方法(转载)
    数据结构实验之图论六:村村通公路 【克鲁斯卡尔算法】
    数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
    数据结构实验之图论四:迷宫探索【dfs 求路径】
    Java 【打印俄文的英文字母】
    【留给自己的独白,长大了】
    Java 【 ArrayList应用 】 (SDUT 4069 C~K的班级)
    你的勇气去哪里了
    Java的 「 “ 结构体 ”」 与 「 “ 自定义排序 ” 」
    Java 中的 SimpleDateFormat 【 parse 和 format 】【转换时间格式】
  • 原文地址:https://www.cnblogs.com/FeiyueHang/p/2093555.html
Copyright © 2011-2022 走看看