easwift_cai 2011-10-09 17:25
浏览 234
已采纳

一个动态oracle游标的问题.求解答

问题我嵌入在代码里..
create produce......
declare  
    i   integer;
    type   myref   is   ref   cursor;
    my   myref;
    s   varchar2(40);

    rec varchar2(20);
begin
      s   :=   'select   stkcode   from   tr_gfk ';
    open   my   for   s;
      LOOP
       FETCH v_cursor    INTO rec;
        EXIT WHEN v_cursor%NOTFOUND;
        .......
    //问题在这里.这个rec 是返回的tr_gfk 表的stkcode字段 .

    1.那么我现在select * from tr_gfk .如何能返回表中所有的数据?定义一个什么样的类型?.怎么写.
    2.还有我现在的sql是动态sql.表名(tr_gfk)也许是传过来的参数.就是说要根据传过来的表名参数来定义这个 rec .怎么做? 
   

close   my;
end;

 

  • 写回答

2条回答 默认 最新

  • iteye_8576 2011-10-10 16:38
    关注

    [code="sql"]
    改下:
    DECLARE
    TYPE myref IS REF CURSOR;
    cur myref;
    s VARCHAR2(40);
    tb_name VARCHAR2(20);
    col_name VARCHAR2(20);
    TYPE arrays IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
    rec arrays;
    BEGIN
    col_name := 'id'; -- 传递的列名

    tb_name := 'T'; -- 传递的表名
    s := 'select ' || col_name || ' stkcode from ' || tb_name;
    OPEN cur FOR s;
    FETCH cur BULK COLLECT
    INTO rec;
    FOR i IN rec.FIRST .. rec.LAST LOOP
    NULL;
    dbms_output.put_line(rec(i));
    END LOOP;
    CLOSE cur;
    END;
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧