plsql(1)

 

 

1.pl/sql 分为三个部分:声明部分、执行部分、异常处理部分 

    DECLARE   

         …这里定义PL/SQL变量、自定义类型、游标和局部子程序(可选部分)

       BEGIN   --  beginend中间添加响应的操作

          …这里可以放置可执行的SQL或者PL/SQL语句,这里必须至少包含一条可执行语句

        EXCEPTION

         …异常处理部分(可选)

       END

/

每个plsql块可以有以上三部分,但是执行部分是必需的,声明和异常是可选的如果有异常处理的话,执行部分是以exception结尾,如果不包含exception部分,就要以end;来结尾

  每条语句后面和每个块(block)后面都要有一个";"结尾

 

2.plsql字符集

字母,数字,空白,tab space 回车,其它符号: + - * / = ; :

plsql对大小写不敏感

plsql中的标识符(indentifier

命名规则:字母开头,后可以跟任意字母,数字,货币符号,下划线,或#,不能有空格,最大长度为30个字母

plsql如何声明变量:

name type [constant] [not null ] [:=value]; //变量名 类型 [常量可选][非空可选][初始值可选];

plsql中要给一个声明的变量赋值要用 := 

constant 声明变量为常量,初始化后之后不能再修改值,类似于java中的final

not null 非空,plsql中的 null 表示未定义,声明变量时不给他赋值它的默认值就为null

 

3.数据类型:

     a. record   类似于 struct

   type emp is record(

id varchar2(32),

firstname emp_xb.firstname%TYPE,

lastname varchar2(20) :='xiaoxiao'

  );

 

   b.table   

(类似于java中的map用法key value键值对形式来存)表中的元素的类型可以是复合类型

定义:TYPE 类型名 IS TABLE OF type(value的类型或元素的类型) INDEX BY BINARY INTEGER;

 

   c.varray   类似于 array包含同一种类型的数组

   d. 参考类型:

       ref cursor 类似于指针

        lob (large object)大对象如音频,图片等

   e. 标量类型:

        binary_integer 只能指定整型

        dec 指定复点型

        float

        number(n,m)   n代表整个复点数整个有效位数,m小数点后面的位数

        varchar       

        varchar2

        boolean

        date

        %type 使一个变量具有数据库当中的某个表的某个字段的相同的数据类型

        %rowtype  

4.结构:

  A.条件:

if 条件 then

      elsif 条件 then

        end if;

   B.循环

  a.loop if 条件 then exit; end if; end loop;

  b. while 条件 loop ... end loop;

      declare

  type t_indtab is table of varchar2(10)

          index by binary_integer;

  v_indtab t_indtab;

  v_index binary_integer;

begin

  v_indtab(100) :='a';

  v_indtab(80) := 'b';

  v_indtab(200) := 'c';

  dbms_output.put_line(v_indtab(200));

  dbms_output.put_line(v_indtab.first);

  dbms_output.put_line(v_indtab.last);

  v_index := v_indtab.first;

  while v_index <= v_indtab.last loop

    dbms_output.put_line(v_indtab(v_index));

    v_index := v_indtab.next(v_index);

  end loop;

  /*for i in v_indtab.first .. v_indtab.last loop

       dbms_output.put_line(v_indtab(i)));

   end loop;*/

end;

C.for循环

        for i in 0..9 loop ..  end loop;(上限  值结束条件为 <=9 )

(默认为自加想实现为自减可改为 for i in

reverse 9..0 loop ... end loop;)

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值