PL\SQL 学习笔记(二) pl\sql 变量声明 与 exception

来源:互联网 发布:金庸群侠传2秘籍数据 编辑:程序博客网 时间:2024/04/30 14:25

1 declare :

   用作声明变量, 

     

declare   v_name varchar2(20);          //声明长度为20的可变字符串 v_namebegin v_name:='myname';               // 对v_name进行赋值dbms_output.put_line(v_name);    // 打印 end;/

 ---变量声明的规则:

1  变量名不能使用保留字,如 from ,select 等

2  第一个字符必须是字母

3 变量名最多包涵30个字符

4 不要与数据库或表同名

5 每一行只能声明一个变量


-- 变量声明 使用%type属性 . 

    变量多用作保存某张表某个字段的值 ,例如 生命的 v_sal number(7,2) 用来保存emp 中的 sal number (7,2). 

    但是随着表的变动,字段类型可能发生变化, 这样就要对v_sal的类型进行修改 .  使用%type 可以简化此问题

declare  v_empno number(4);   v_empno2 emp.empno%type;   v_empno3 v_empno2%type;   begin       dbms_output.put_line('Text');   end;/

--常用变量类型

 1  binary_integer: 整数 ,主要用来计数而不是用来表示字段类型

2 number :数字类型

 3 char  定长字符串

 4 varchar2 变长字符串

  5 date 日期

 6 long 长字符串 ,最长2GB

boolean 布尔类型 ,可以取值为true,false 和null 值


--复杂的变量类型 :

 1 table (可以大致理解为下表可取负值的数组)  

declaretype type_table_emp_empno is table of emp.empno%type index by binary_integer;v_empnos type_table_emp_empno;begin v_empnos(0):=7369;v_empnos(2):=7839;v_empnos(-1) := 9999;dbms_output.put_line(v_empnos(-1));end;/

 使用table 类型的步骤 

  1) 声明一个新的类型 如

          type type_table_emp_empno is table of emp.empno%type index by binary_integer;

                     这里,声明了一个  type_table_emp_empno  类型, 对这个类型的描述是, 它是 emp.empno%type 类型的table

  2)使用新声明的类型创建变量 

        v_empnos type_table_emp_empno;

2  Record  (有点类似于 类)

    

declare type type_record_dept is record(deptno dept.deptno%type, dname dept.dname%type, loc dept.loc%type);v_temp type_record_dept;begin v_temp.deptno:=50; v_temp.dname:='aaaa';v_temp.loc:='bj' ;dbms_output.put_line(v_temp.deptno ||' ' ||v_temp.dname);end;/
或者  完全依照某个表来定义, 这样当表的字段变化时,该类也跟着变化

declare   v_temp dept%rowtype;begin   v_temp.deptno :=50;v_temp.dname:='aaaa';v_temp.loc:='bj';dbms_output.put_line(v_temp.deptno || ' '|| v_temp.dname);end;/


  2 exception  异常:

     此处与java类似

declare v_num number := 0;begin v_num:=2/v_num;dbms_output.put_line(v_num);exception when others then   // when  others   包含所有异常情况 dbms_output.put_line('error');end;/


原创粉丝点击