PL/SQL编程中变量的声明


PL/SQL编程中变量的声明

创建第一个程序hello world begin dbms_output.put_line('Hello world'); end; /   set serveroutput on;(输出语句到dos窗口的命令)   begin dbms_output.put_line('Hello world'); end; / 就可以在dos窗口中看到Hello world;   (简单变量的声明) 声明变量: declare v_name varchar2(20);(变量名在前,类型在后) begin v_name := 'myname';(给变量进行赋值) dbms_output.put_line(v_name); end; / (异常处理) declare v_num number := 0; begin v_num := 2/v_num; dbms_output.put_line(v_num); exception when others then dbms_output.put_line('error'); end; 变量声明的规则: 1 变量名不能使用保留字:(from,select) 2 第一个字符必须是字母 3 变量名最多包含30个字符 4 不要与数据库的表或者列同名 5 每一行只能声明一个变量   常用类型变量: binary_integer :整数,主要用来计数而不是用来表示字段类型,(提高效率) number;数字类型 char:定长字符串; date:日期; long:长字符串,最长2G; boolean 布尔类型,可以取值true,false,null值 常量的练习; declare v_temp number(1); v_count binary_integer :=0; v_sal number(7,2) :=4000.00; v_date date := sysdate; v_pi constant number(3,2) := 3.14; v_valid boolean :=false; v_name varchar2(20) not null :='MyName'; begin dbms_output.put_line('v_temp value' || v_temp);(||连接符) end; / 注释一句用'--' 注释一段/* */ dbms_output.put_line()不能打印boolean 变量   使用%type属性: declare (变量声明类型依据 表的类型变化) v_empno number(4); v_empno2emp.empno%type; v_empno3v_empno2%type; begin dbms_output.put_line('Test'); end;   复合变量的声明:   第一种: Table变量类型(相当于java的数组) declare typetype_table_emp_empnois table of emp.empno%type index by binary_integer; v_empnostype_table_emp_empno; begin v_empnos(0) := 7369; v_empnos(2) := 7839; v_empnos(-1) := 9999;--(下标可以是小于0的)(注释) dbms_output.put_line(v_empnos(-1)); end;   Record变量类型:(相当于java的类) declare typetype_record_dept isrecord ( 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;   使用%rowtype声明record 变量; declare v_tempdept%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;   SQL(select)语句在PlSQL中的应用: declare v_ename emp.ename%type; v_sal emp.sal%type; begin --plsql语句中select语句中必须有into ,必须保证返回记录 select ename,salintov_ename,v_sal from emp where empno = 7369; dbms_output.put_line(v_ename || ' ' || v_sal); end;   declare v_emp emp%rowtype; begin select *into v_emp from emp where empno = 7369; dbms_output.put_line(v_emp.empno); end;   其他SQL 语句在plsql中的应用: declare v_deptno dept.deptno%type := 50; v_dname dept.dname%type :='aaaa'; v_loc dept.loc%type := 'bj'; begin --插入数值; insert into dept2 values(v_deptno,v_dname,v_loc); commit; end;     declare v_deptnoemp2.deptno%type:= 10; v_count number; begin update emp2 set sal=sal/2 where deptno =v_deptno;
--select deptno into v_deptno from emp2 where empno = 7369;
-- select count(*) into v_count from emp2;

相关内容