变量
Plsql编程中常见的变量分为两大类:
1. 普通数据类型(char,varchar2,date,number,boolean,long)
2. 特殊变量类型(引用型变量,记录型变量)
声明变量的方式为:
变量名 变量类型(变量长度) 例如:v_name varchar2(20)
普通变量
变量赋值的方式有两种:
1. 直接赋值语句 := 比如: v_name :=’zhangsan’
2. 语句赋值,使用select ...into...赋值:(语法 select 值 into 变量)
示例:打印人员个人信息,包括:姓名,薪水,地址
-- Created on 2020/12/12 by zyq
declare
-- Local variables here
--姓名
v_name varchar2(20) :='zhangsan';
--薪水
v_sal number;
--地址
v_addr varchar2(200);
begin
-- Test statements here
--直接赋值
v_sal :=1580;
--语句赋值
select '北京市通州区' into v_addr from dual;
--打印输出
dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal||',地址:'||v_addr);
end;
执行输出结果:
姓名:zhangsan,薪水:1580,地址:北京市通州区
引用型变量
变量的类型和长度取决于表中字段的类型和长度
通过表名.列名%type指定变量的类型和长度,例如:v_name emp.ename%type;
[示例]查询emp表中的7839号员工的个人信息,打印姓名和薪水
使用普通变量的方式:
-- Created on 2020/12/12 by zyq
declare
-- Local variables here
--姓名
v_name varchar2(20) :='zhangsan';
--薪水
v_sal number;
begin
-- Test statements here
SELECT a.ename,a.sal into v_name,v_sal FROM emp a WHERE a.empno='7839';
**--打印输出**
dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal);
end;
使用引用型变量的方式:
dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal);
end;
使用引用型变量的方式:
-- Created on 2020/12/12 by zyq
declare
-- Local variables here
--姓名
v_name emp.ename%type;
--薪水
v_sal emp.sal%type;
begin
-- Test statements here
SELECT a.ename,a.sal into v_name,v_sal FROM emp a WHERE a.empno='7839';
--打印输出
dbms_output.put_line('姓名:'||v_name||',薪水:'||v_sal);
end;
引用型变量的好处:
使用普通变量定义方式,需要知道表中列的类型,而使用引用类型,不需要考虑列的类型,使用%type是非常好的编程风格,因为他是的plsql更加灵活,更加适应于对数据库定义的更新。
记录型变量
解释:记录型变量,就是将整个表中的一行记录的所有字段同时声明出来。
-- Created on 2020/12/12 by zyq
declare
-- Local variables here
--记录型变量
v_emp emp%rowtype;
begin
-- Test statements here
SELECT * into v_emp FROM emp a WHERE a.empno='7839';
--打印输出
dbms_output.put_line('姓名:'||v_emp.ename||',薪水:'||v_emp.sal);
end;
如果有一个表,有100个字段,那么你程序中如果要使用这100个字段的话,如果你使用引用型变量一个个声明,会特别的麻烦,记录型变量可以方便的解决这个问题
错误的使用:
1. 记录型变量只能存储一个完整的行数据