和我一起恶补pl/sql(第一讲)

读完我的这个恶补,你可以对pl/sql的特性有了基本的认识。话不多说,开始。

在pl/sql中,可以使用sql语句来操作oracle操作,并且使用流程控制语句来处理数据。我们还可以声明常量和变量,定义函数和过程并捕获运行时的错误。

pl/sql是一种把sql对数据操作的优势和过程化语言数据处理优势结合起来的语言。

例子1:

declare qty number(5);--定义变量qty

begin  --语句块的开始

    select quantity into qty  from invertyory  --从invertyory表中选择quantity字段 并且赋值给qty变量

    where product = 'TENNIE RACKET' for update of quantity;--条件是product等于'TENNIE RACKET' 为了对quantity的更新

    if qty>0 then  --if语句的判断qty>0就执行

        update inventy set quantity = quantity -1--更新inventy表的quantity这个字段

        where product ='TENNIE RACKET';--更新的条件是product ='TENNIE RACKET'

        insert into pur_record values('TENNIE RACKET purchased',SYSDATE);--向pur_record中插入一条成功的记录

    else--if语句为false的执行部分

       insert into pur_record values('out of TENNIE RACKET',SYSDATE);--向pur_record中插入一调相应的记录

    end if;--if语句的结束标记

    commit;--提交数据库,之前都是在内存的操作,并没有在数据库中真实的反应

 end;--结束

知识点1、 块结构:它的基本组成单元是一些逻辑块,这些块又能嵌套任意数量的子块,块组成包括:声明、处理、异常控制。在其中处理是必须的。

知识点2、变量、常量

      变量:

      声明: part number(4);

              instack boolean;

      赋值:方法一用“:=”,  tax :=price*tax;  vaild :=false;

              方法二:利用数据库的查询结果为变量赋值:select quantity into qty  from invertyory 
                                                                       where product = 'TENNIE RACKET' for update of quantity;

              方法三:把变量作为一个out和in out模式的参数传递给子程序,然后由子程序为其赋值:

                         declare my real(7,2);

                         procedure adjust_salary(emp int,salary in out real)is .....

                        begin 

                              select avg(sal) into my from emp;

                        adjust_salary(7788,my);

     常量:要加constant关键字,red constant real:=5000.00;

下一讲是关于游标的,陆续更近。。。。。

原文地址:https://www.cnblogs.com/lmfeng/p/2081192.html