问题 : 我有个这样的程序 for lstOrder in (select * from table1)--该table1假如有id,name,address字段 
loop 
  begin 
    for lstCharacter in (select * from table2)--该table2有cid,dstfiled字段,实际上存的是:1 id, 2 name, 3 address这三条记录(table1的字段) 
    loop 
      begin 
        --我想在这根据lstCharacter.dstfiled读取到lstOrder 所对应字段的值如何读取 
      end; 
    end loop;   end; 
end loop

解决方案 »

  1.   

    如果你只想读table1对应的table2的那一条,可以把内层循环用where代替。
    如果仅仅是这样的应用,可以用外层循环的多表待条件查询,替代内层的select语句。
      

  2.   

    不知道楼主是不是这个意思?for lstOrder in (select * from table1)--该table1假如有id,name,address字段 
    loop 
      begin 
        for lstCharacter in (select * from table2)--该table2有cid,dstfiled字段,实际上存的是:1 id, 2 name, 3 address这三条记录(table1的字段) 
        loop 
          begin 
            if lstCharacter.dstfiled = 'id' then
               value1:=lstOrder.id;
            elif lstCharacter.dstfiled = 'name' then
               value2:=lstOrder.name;
            elif lstCharacter.dstfiled = 'address' then
               value3:=lstOrder.address;
            endif;
          end; 
        end loop;   end; 
    end loop