%type
使用库表某个字段的类型来声明一个变量的类型。例如:
declare
remark
p_name变量的类型与v$datafile库表的name字段相同
p_name v$datafile.name%type
begin
select name from v$datafile where v$datafile.name = 'filename' into p_name;
end;
%rowtype
变量的数据类型与一个参照表记录的数据类型相一致
declare
p_value v$datafile%rowtype;
begin
select * from v$datafile into p_name;
end;
record
定义一个复合数据类型,类似于c#中的struts
declare
remark type datafile_record_type is record自定义一个数据类型
type datafile_record_type is record(
name v$datafile.name%type;
status v$datafile.status%ype;
);
r_value datafile_record_type;
begin
select name,status from v$datafile into r_value;
remark 使用"."来访问字段的值,如:r_value.name
自定义数据类型,类似与数组,使用下标来访问数据
declare
type table_type is table of v$datafile%rowtype;
t_value table_type;
begin
select * from v$datafile into t_value(-3);
remark 括号里的-3表示,起始数据的下标是-3
dbms_output.put_line(t_value(-1).name);
end;
--转自