PL/SQL 一

来源:互联网 发布:淘宝 关闭私人定制 编辑:程序博客网 时间:2024/06/11 19:52

PL/SQL
一。语言特征

PL/SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。除此之外,可以在Oracle数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点
PL/SQL语言将sql与面向过程语言相结合,它是在SQL语言中扩充了面向过程语言中使用的程序结构,如:
•变量和类型(即可以预定义也可以由用户定义)
•控制语句(如IF-THEN-ELSE)和循环
•过程和函数
•对象类型和方法PL/SQL8.0版本以上)基本单元为statment。
statement分为申明快、处理块、异常块等。处理块必须有一条处理语句。
格式为:
Declare
 //定义变量。申明一些类型
Begin
 //处理块

Exception
  //异常处理

End

二。变量类型
标量
---基本数据类型
boolean -----false,true,null
long--是字符窜,存放大量的字符串

复合类型(Record)
--简单数据类型的组合,相当于java中的对象
 eg:
  DECLARE
   TYPE t_StudentRecord IS RECORD (
   FirstName VARCHAR2(10),
   LastName VARCHAR2(10),
   CurrentCredits NUMBER(3)
   );
 数组类型(table)
 --存放很多条数据,相当于java中的数组,我们可以存放Record元素,这样我们可以组织类似SqlServet临时表的功能

引用类型
 --和复合类型相似,但是对象类型是内存是可变的。而 cursor 引用类型指向的是内存中的对象,所以内存不可以变

大对象
-- lob  large object
--clob 字符型的大对象   blob字节型的大对象

三。循环分支判断

分支判断:

if.....then
elsif ....then
else
/*条件判断*/
declare
  v_num number := 11;
begin
  if(v_num is null) then
             dbms_output.put_line('v_num is null');
  elsif(v_num =10) then
              dbms_output.put_line('v_num =10');
 else
              dbms_output.put_line('v_num is'||' '||v_num);
   end if;          

 

end;

循环:

循环又分为for...loop、loop、while....loop,个人觉得loop这种方式不怎么好用,故多用其他两种,for..loop多用在游标中,

因为该方式可以自动打开和关闭游标。(特别是新手,经常忘了关闭游标)

/*循环*/
declare
  v_start number :=0;
  v_end number:=10;
  v_i number:=0;
begin
  /*while 循环*/
  while (v_i<v_end)
  loop
        dbms_output.put_line('v_i = '||v_i);
        v_i := v_i +1;
  end loop;
  /*for 循环*/
  for v_i in v_start .. v_end
  loop
      dbms_output.put_line('v_i = '||v_i);
 
  end loop;
 

end;