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.

  • 相关阅读:
    游标cursor
    SQL: EXISTS
    LeetCode Reverse Integer
    LeetCode Same Tree
    LeetCode Maximum Depth of Binary Tree
    LeetCode 3Sum Closest
    LeetCode Linked List Cycle
    LeetCode Best Time to Buy and Sell Stock II
    LeetCode Balanced Binary Tree
    LeetCode Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/FeiyueHang/p/2093555.html
Copyright © 2011-2022 走看看