比如:
表tb1(col1 number ,col2 varchar2(10) )
t_col tb1.col1;//声明为number 型的
t_col tb1%rowtype//可以存放一行,包括col1 number ,col2 varchar2(10)

解决方案 »

  1.   

    sorry,漏了%type;t_col tb1.col1%type;//等价于声明t_col为number 型的
      

  2.   

    %type保证内部变量保持与给该变量提供值的数据库字段有相等的数据类型(有相同的格式类型和长度),其语法要求:在%type前面有表名及字段名,用一个圆点将表名和字段名隔开;%rowtype有类似的功能,不同的是:它在内存中为相应表的每一个字段都建立一个内部变量,其语法要求:在%rowtype前加表名。其区别为:%type仅仅是一个变量而%rowtype是一组变量的集合,例如:假设有一块表emp有两个字段department_name和salary,则declare
       dept   emp.department_name%type;   --定义一个变量
       emp_row   emp%rowtype;   --定义一组(2个)变量
    begin
       ...
    end;
      

  3.   

    很简单,如果你关心的只是表的某个字段,那用%type,如果你关心的是表属性,那么用%rowtype,此外在PLSQL中,这是个好习惯!