—声明索引表类型(关联数组)
declare
type v_test is table of a_demo_emp%ROWTYPE
index by varchar2(6);
v_one_test v_test;
begin
select *
into v_one_test(‘1’)
from a_demo_emp
where empno=‘7369’;
select *
into v_one_test(‘2’)
from a_demo_emp
where empno=‘7521’;
dbms_output.put_line(‘员工编号:’ ||v_one_test(‘1’).empno );
dbms_output.put_line(‘员工姓名:’ ||v_one_test(‘1’).ename );
dbms_output.put_line(‘员工工资:’ ||v_one_test(‘1’).sal );
dbms_output.put_line(’---------分割线-----------’);
dbms_output.put_line(‘员工编号:’ ||v_one_test(‘2’).empno );
dbms_output.put_line(‘员工姓名:’ ||v_one_test(‘2’).ename );
dbms_output.put_line(‘员工工资:’ ||v_one_test(‘2’).sal );
end;
结果如图
—声明记录类型
declare
type v_emp_ino is record
(
v_empno a_demo_emp.empno%TYPE,
v_ename varchar2(10),
v_sal number(12,2)
);
v_one_emp v_emp_ino;
begin
select empno,ename,sal
into v_one_emp
from a_demo_emp
where empno=‘7369’;
dbms_output.put_line(‘员工编号:’ ||v_one_emp.v_empno );
dbms_output.put_line(‘员工姓名:’ ||v_one_emp.v_ename );
dbms_output.put_line(‘员工工资:’ ||v_one_emp.v_sal );
end;
结果如图
–声明变量并赋值
declare
v_name varchar2(20);–(变量名在前,类型在后)
begin
v_name := ‘张三’;–(给变量进行赋值)
dbms_output.put_line(v_name);
end;
结果如图
—声明常量并赋值
declare
v_sal number(5) := 5000;
begin
dbms_output.put_line(‘v_sal value’|| v_sal);
end;
结果如图
------------声明varray变长数组并进行赋值使用
declare
type v_test is varray(100) of varchar2(20);
v_one_test v_test := v_test(‘1’,‘2’);
begin
v_one_test(1):='this is a ';
v_one_test(2):=‘test’;
dbms_output.put_line(v_one_test(1) ||v_one_test(2));
end;
结果如图;