pl/sql 是一种强类型的编程语言,所有的变量必须声明后再使用
,要求在DECLARE部分进行声明
变量名称规定:
变量名称可以有字母,数字 _ $ #等组成
所有的变量名称要求以字母开头,不能是oral中的保留字
变量长度小于30个字符
定义变量如果没有赋值则以NULL作为默认值
SQL> DECLARE
2 v_result VARCHAR2(30);
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE('V_RESULT = '||v_result);
5 END;
6 /
V_RESULT =
PL/SQL 过程已成功完成。
所有的变量声明都在DECALRE中完成
声明变量的语法
变量名称 [CONSTANT] 类型 [NOT NULL] [:=value];
CONSTANT:定义常量,必须在声明是为其赋予默认值
NOT NULL : 表示此变量不允许设置为NULL
:=value:表示在变量声名时,设置号初始化内容.
定义变量
SQL> DECLARE
2 v_resultA NUMBER :=100; --定义一个变量,同时赋值
3 v_resultB NUMBER; --定义一个变量,没有设置内容
4 BEGIN
5 v_resultB :=30;
6 DBMS_OUTPUT.PUT_LINE('count = '||(v_resultB +v_resultA));
7 END;
8 /
count = 130
PL/SQL 过程已成功完成。
定义非空变量
SQL> DECLARE
2 v_resultA NUMBER NOT NULL:=100;
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE(v_resultA);
5 END;
6 /
100
PL/SQL 过程已成功完成。
使用%TYPE 声明变量类型
如果希望某一个变量与数据表中的某一列的类型一样,则可以采用
变量定义 表名称.字段名称%TYPE 的格式 这样制定的变量就具备了指定字段相同的类型
SQL> DECLARE
2 v_eno emp.empno%TYPE;
3 v_ename emp.ename%TYPE;
4 BEGIN
5 DBMS_OUTPUT.PUT_LINE('请输入雇员编号');
6 v_eno :=&empno;
7 select ename INTO v_ename FROM emp WHERE empno=v_eno;
8 DBMS_OUTPUT.PUT_LINE('编号为 : '||v_eno||' 姓名 : '||v_ename);
9 END;
10 /
输入 empno 的值: 7369
原值 6: v_eno :=&empno;
新值 6: v_eno :=7369;
请输入雇员编号
编号为 : 7369 姓名 : SMITH
PL/SQL 过程已成功完成。
%ROWTYPE 声明变量类型
%ROWTYPE 标记,使用该标记可以定义表中一行记录的类型.
SQL> DECLARE
2 v_deptRow dept%ROWTYPE;
3 BEGIN
4 SELECT *INTO v_deptRow FROM dept WHERE deptno=10;
5 DBMS_OUTPUT.PUT_LINE('编号 : '||v_deptRow.deptno||' 名称 : '||v_deptRow.dname||', 位置: '||v_deptR
ow.loc);
6 END;
7 /
编号 : 10 名称 : ACCOUNTING, 位置: NEW YORK
PL/SQL 过程已成功完成。