%type %rowtype record table

%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

end;

table

自定义数据类型,类似与数组,使用下标来访问数据

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;

 

 

你可能感兴趣的:(oracle)