变量
- 普通数据类型(char、varchar2、date、number、boolean、long)
- 特殊变量类型(引用型变量、记录型变量)
声明变量的方式:变量名 变量类型(变量长度) 例如:v_name varchar2(20)
2.1普通变量
普通变量赋值的方式有两种
- 直接赋值 :=
- 使用select......into......赋值(select 值 into 变量)
declare
v_name varchar2(20):='张三';
v_sal number;
v_addr varchar2(200);
begin
v_sal:=1580;
select '湖北省武汉市' into v_addr from dual;
print('姓名:'||v_name||',薪水:'||v_sal||',地址:'||v_addr);
end;
2.2特殊变量
2.2.1引用型变量
- 变量的类型和长度取决于表中字段的类型和长度
- 通过表名.列名%TYPE指定变量的类型和长度,例如:v_name emp.ename%TYPE;
declare
v_name "user".username%TYPE;
v_gender "user".gender%TYPE;
begin
select username,gender into v_name,v_gender from "user" where id='1';
print('姓名:'||v_name||',性别:'||v_gender);
end;
引用型变量的好处:
使用普通变量定义方式,需要知道表中列的类型,而使用引用类型,不需要考虑列的类型,使用%TYPE是非常好的编程风格,因为它使得PL/SQL更加灵活,更加适应于对数据库定义的更新。
2.2.2记录型变量
接收表中的一整行记录,相当于JAVA中的一个对象
语法:变量名称 表名%ROWTYPE 例如:v_emp emp%rowtype;
declare
v_emp "user"%ROWTYPE;
begin
select * into v_emp from "user" where id='1';
print('姓名:'||v_emp.username||',性别:'||v_emp.gender);
end;