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;

/


猜你喜欢

转载自blog.csdn.net/weixin_41113108/article/details/80342315