定义变量
v_ename varchar2(20);
v_sal number(10,2);
v_sal number(10,2):=5.4;
v_hiredate date;
v_valid boolean not null default false;
declare
c_tax number(3,2):=0.03;
v_ename varchar2(5);
v_sal number(7,2);
v_tax_sal number(7,2);
begin
select ename, sal into v_ename, v_sal from emp where empno=&no;
v_tax_sal:=v_sal*c_tax;
dbms_output.put_line('姓名:'|| v_ename||' 工资:'||v_sal ||' 应缴税: '||v_tax_sal);
end;
declare
c_tax number(3,2):=0.03;
v_ename emp.ename%type; --
v_sal number(7,2);
v_tax_sal number(7,2);
begin
select ename, sal into v_ename, v_sal from emp where empno=&no;
v_tax_sal:=v_sal*c_tax;
dbms_output.put_line('姓名:'|| v_ename||' 工资:'||v_sal ||' 应缴税: '||v_tax_sal);
end;
复合类型
pl/sql记录实例 --类似于结构体
declare
type emp_record_type is record(
name emp.ename%type,
salary emp.sal%type,
title emp.job%type);
sp_record emp_record_type;
begin
select ename,sal, job into sp_record from emp where empno=7788;
dbms_output.put_line('员工名:'||sp_record.name ||' 薪水:'||sp_record.salary|| '工作:'|| sp_record.title);
end;
pl/sql表 --相对于数组
declare
type sp_table_type is table of emp.ename%type index by binary_integer;
sp_table sp_table_type;
begin
select ename into sp_table(0) from emp where empno=7788;
dbms_output.put_line('员工名: '|| sp_table(0));
end;