select * into newrow from table_name where a = b;
table_name表中的字段数及字段名不确定
是根据配置表中取得的
那我如何动态取得newrow.columnname的值那?
谢谢

解决方案 »

  1.   

    看不懂问题。select * from table_name where a = b; 是游标?newrow是什么?newrow中的字段应该table_name决定的,用
    select * from user_tab_columns where table_name='TABLE_NAME'
    可以查到
      

  2.   

    newrow是table_name%rowtype类型的东东若 table_name中存在某字段为aa
    则直接可以使用newrow.aa得到字段的值现在的问题是,如果字段不确定那?字段名未定,字段名是一个变量
    'newrow.'||variable
    就是实现这么一个效果
    我说的楼上的懂了么?
      

  3.   

    楼主,用kingsunsha的方法可以实现,例如表名为test:
    select COLUMN_NAME from user_tab_columns where table_name='TEST'可以查出一个表的字段名,然后你根据需要就可以取相应的字段名来用了。
      

  4.   

    我想问一下楼上的
    'newrow.'||variable
    这么做你实现过么?
    你说的那是已知字段,直接就可以出来
    如果未知字段那?
      

  5.   

    得到字段名之后那?
    怎么获取相应的字段的值?
    newrow.XX  ??
    xx是变量,能这么用么?
      

  6.   

    用游标
    cursor c1 as
    select * from table_name where a = b;要用某列就c1.column
      

  7.   

    to:Eric_1999(╙@^@╜) 
    如果是不能确定的字段名称那?
    如何取得该字段对应的值那?
      

  8.   

    newrow是table_name%rowtype类型的东东...
    首先你的多个table_name结构应该相同吧,不然这个newrow也成了动态的了
    可以用newrow(0),newrow(1)......不用写列名只用索引号来取列值
      

  9.   

    表名是固定的,只是字段不固定
        select * into newrow from table_name where id=5; 
           dbms_output.put_line(newrow(0));
    楼上的这样好像报错唉
        Error: PLS-00222: 在此范围中不存在名为 'newrow' 的函数