pl/sql 变量的声明与赋值

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 过程已成功完成。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值