Oracle:PLSQL——类型
举例 | 说明 |
---|---|
i number(2); | 定义一个number的变量i |
mysum number(3):=100; | 定义一个number类型的变量mysum并为其赋值为100,注意 :‘ :=’为赋值符号 |
msg varchar2(4):=’zzzzz’; | 定义一个varcher2类型的变量msg并为其赋值为zzzzzz,注意:PLSQL中字符用单引号括起来 |
pname emp.ename%type; | 定义一个与enp表中ename字段相同类型的变量pname,注意:%type表示与该字段类型相同 |
emp_record emp%rowtype; | 定义一个变量emp_record变量,其与emp表结构相同,注意:%rowtype表示与表结构相同,使用时用,变量名.字段名使用 |
%type与%rowtype的区别:
①当定义变量时,该变量的类型与表中某个字段的类相同时可以使用%type;
②当定义变量时,该变量与整个表结构完全相同时,可以使用%rowtype,此时可以通过变量名.字段名取变量中对应的值。
例1:输出7369号员工的姓名和工资,格式如下:7369号员工的姓名是SMITH,薪水是800.
解法一:使用%type
declare
--定义两个变量,分别装姓名和工资
pename emp.ename%type;
psal emp.sal%type;
begin
--SQL语句
--PLSQL语句,将ename的值放入pname变量中,sal放入psal中
selelct ename,sal into pename,psal from emp where empno = 7369;
dbms\_output.put\_line('7369号员工的姓名是' ||pename||',薪水是'||psal);
end;
/
解法2:使用%rowtype
declare
emp\_record emp%rowtype;
begin
select \* into emp\_record from emp where empno=369;
dbms\_output.put\_line('7369号员工的姓名是' ||emp\_record.ename||',薪水是'||emp\_record.sal);
end;
/
还没有评论,来说两句吧...