入职后回顾数据库知识(四)

6 篇文章 0 订阅
6 篇文章 0 订阅

PL/SQL

变量的声明

标识符

PL/SQL程序设计中的标识符定义与SQL 的标识符定义的要求相同。要求和限制有:

  • 标识符名不能超过30字符;
  • 第一个字符必须为字母;
  • 不分大小写;
  • 不能用’-‘(减号);
  • 不能是SQL保留字。

变量命名

在PL/SQL中有特别的讲究,建议在系统的设计阶段就要求所有编程人员共同遵守一定的要求,使得整个系统的文档在规范上达到要求。下面是建议的命名方法:
在这里插入图片描述

 DECLARE /* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数 */
  V_name varchar2(18);
  V_number := 45;
如果变量在声明时使用了NOT NULL,则必须为变量指定初始值,  
 i  number not null := 10;
如果变量在声明时使用了CONSTANT,则必须为变量指定初值,并且初值不可改变。
  i CONSTANT  number := 10;

变量类型

基本类型

在这里插入图片描述

RECORD 类型

记录类型
记录类型是把逻辑相关的数据作为一个单元存储起来,它必须包括至少一个标量型或RECORD 数据类型的成员,称作PL/SQL RECORD 的域(FIELD),其作用是存放互不相同但逻辑相关的信息。
定义记录类型语法如下:

TYPE record_type IS RECORD(
   Field1 type1  [NOT NULL]  [:= exp1 ],
   Field2 type2  [NOT NULL]  [:= exp2 ],
   . . .   . . .
   Fieldn typen  [NOT NULL]  [:= expn ] ) ;
--可以将recode类型理解成Java中所对应的类类型
DECLARE 
   TYPE test_rec IS RECORD(
         Code VARCHAR2(10),
         Name VARCHAR2(30) NOT NULL :='a book'
         );
   V_book test_rec;
BEGIN
   V_book.code :='123';
   V_book.name :='Java 从精通到入门';
   DBMS_OUTPUT.PUT_LINE(v_book.code||v_book.name);
END;

使用%TYPE

定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同,这时可以使用%TYPE。
使用%TYPE特性的优点在于:

  • 所引用的数据库列的数据类型可以不必知道;
  • 所引用的数据库列的数据类型可以实时改变。
-- 用 %TYPE 类型定义与表相配的字段
DECLARE
   TYPE t_Record IS RECORD(
          T_no emp.empno%TYPE,
          T_name emp.ename%TYPE,
          T_sal emp.sal%TYPE );
   -- 声明接收数据的变量
   v_emp t_Record;
BEGIN
   SELECT empno, ename, sal INTO v_emp FROM emp WHERE empno=7788;
   DBMS_OUTPUT.PUT_LINE
(TO_CHAR(v_emp.t_no)||v_emp.t_name||TO_CHAR(v_emp.t_sal));
END;

%ROWTYPE

--%ROWTYPE可以理解为将数据库中的一行提取出来的一个副本
DECLARE
   r_emp emp %ROWTYPE ;
BEGIN
   SELECT empno, ename, sal INTO r_emp.empno,r_emp.ename,r_emp.sal FROM emp WHERE empno=7788;
   DBMS_OUTPUT.PUT_LINE
(TO_CHAR(r_emp.empno)||r_emp.ename||TO_CHAR(r_emp.sal));
END;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个人的雨田

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值