定义一个record r (a number,
                  b number,
                  .
                  .
                  n number)  程序中定义一个 变量 var 他的值是代表 a,b,c..n 中的任意一个, 想使用 
   loop
      r.var 
   end loop 
这样的一个想法 能不能实现?? 各位高手帮忙看看。。谢谢

解决方案 »

  1.   

    不行,RECORD是一个类型
    必须在进行声明一个变量
    例如
    record r (a number,
      b number,
      .
      .
      n number);var r;取出其中一个字段B可以用VAR.B,取c用VAR.c
      

  2.   

    record相当于表中的一条记录,你那个loop相当于从该记录的第一个字段遍历到最后一个字段。
    而字段名你在使用的时候是必须指定的,所以不能这么用。
      

  3.   


     TYPE T_GRBH IS RECORD(
        GRBH VARCHAR2(30));
      TYPE T_GRHM IS TABLE OF T_GRBH;
      V_GRHM T_GRHM;
      

  4.   


     什么意思???定义一个数组,循环读数组?
     V_GRHM.GRBH  这样不就又是写死了,,不太明白。。
      

  5.   


    大哥,你说的很对。其实我就是把 表中的记录放到 record a 中,然后得到 字段的一个数组 arry_col,
      循环读 字段数组 arry_col 想获取该字段的值(我不想在查表)
    loop  
     var in  arry_col
         loop
           a.var 变量
        end loop;
    end loop;
      

  6.   


    兄弟我被你说糊涂了。你能不能列出你的create table语句、table里面的数据,怎么搞到的那个字段的数组,准备怎么比对?
    感觉你的这种需求很诡异