论坛首页 综合技术论坛

PL/SQL1_plsql简介

浏览 2035 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-07-04  

一、PL/SQL目标
二、Pl/SQL简介
   是Oracle公司开发的,专门用于Oracle数据库的一种程序开发语言。
   Pl:代表procedural language,过程性语言。
   SQL:
   增加了循环控制、条件判断等编程语言的特点。
三、块block的介绍
   组成:包含4个部分。
   1、块的声明部分,以declare关键字开头。写所有的变量、常量声明。是可选的部分。
   2、块的主体部分,以begin关键字开头,写块的主要功能。是必须的部分。
   3、异常处理部分,以exception关键字开头,处理主体部分可能出现的异常。是可选的部分。
   4、结束部分,以关键字end开头,标示一个块的结束。是必须的部分。end;
   注意事项:1、所有的声明都写在declare部分。
             2、每行结束都要加上;除了declare,begin,exception这几个关键字之外。
             3、一个语句通常写在一行。
四、块的类型
    1、匿名块:
    2、命名块:
           a\存储过程、函数:被动执行
           b\触发器:自动执行。
五、变量
    1、变量命名规则
    2、命名建议。
    3、变量类型
       标量型:内部没有分量
              a、数值型:number、binary_integer、PLS_integer
              b、字符型:char,varchar2,
              c、日期型:date
              d、布尔型:true,False,Null,
       复合型:内部有分量
              a、记录型变量。
              b、pl/SQL表类型。          
       引用型:
       LOB型: 
       外部变量:声明在块之外的。
            绑定变量:绑定变量需要在块的外部声明,使用variable 变量名 变量类型。在块的内如果要使用绑定变量
            ,需要在变量名之前加上:
            替代变量:不需要声明,直接在块中就可以使用。使用方式在变量名前加上&,该变量需要在程序运行时赋值。             
    4、变量声明语法
       变量名 [Constant] 变量数据类型 [Not Null] [:=表达式] [Default 表达式];
       注意:变量名不区分大小写。
       当使用not null或constant时,必须为其赋初值。
      
       %Type:一种简便声明变量的方式。使用语法:
       变量名 前缀%Type  [Not Null] [:=表达式] [Default 表达式];
       前缀可以是某个表中的某个列,或者是另一个先前声明的变量。该声明方式可以随时和数据库中的某个列保持同步。
    5、变量赋值:
       语法1:变量名 :=   表达式;该语法可以写在declare,begin,exception部分。
       语法2:select 列名|表达式 Into 变量名 From ..........
              *:如果查询结果集是多行或者0行,则该语句抛出异常。
              select后面的列名列表必须和into后面的变量名列表在个数上和数据类型上保持一致。
              多个变量名之间用,分割。该语法必须写在begin部分。
    6、dmbs_output.put_line:输出语句。 
    7、set serveroutput On:打开输出标志。
六、注释
   1、单行注释:--
   2、多行注释: /* 开始,*/结束。
七、过程语句中的函数  
    1、有效的:单行字符、单行数值、单行日期、转换、nvl.
    2、无效的:所有分组函数、decode
八、嵌套块和变量的作用域。
九、PL/SQL块中的SQL语句。   
    只有DML(insert、update、delete、merge)、Select、TCL(commit、rollback、savepoint)
    这三种命令可以直接写在pl/sql块中。
    DDL(Create\Alter\Drop\Rename\truncate)、DCL(Grant\Revoke)不可以直接写。
    块和事务没有必然联系。

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics