我要写一个存储过程对一批这样的表中的全部数据进行分析:
table_20050801,table_20050802,table_20050803,……table_20050831我考虑用游标,但由于表名不确定,不知如何下手?
我看了一下带参数的游标中是不允许表名为参数的,请高手指点:1.由于表名有规律,能否在一个循环中使用游标来实现?
2.或在存储过程中带参数,如何实现?

解决方案 »

  1.   

    是csdn人气不足,还是没人能解呀?
      

  2.   

    游标中的表和字段都不能用变量或字符串的,动态Sql应该可以做这个吧?
    顶下!
      

  3.   

    可以得拼个sql语句
    譬如:table_20050801,table_20050802,table_20050803,……table_20050831
    v_aa varchar(50)(类似得值是20050801,20050802,20050803得变量)
    sqlstr varchar(200);
    type cur is ref cursor;
    cr cur;sqlstr:='select * from table_'|| v_aa;open cr fro sqlstr;loop
    fetch cr into ...
    exit when cr%notfound;
    ...end loop;
      

  4.   

    如果数据差不多,你可以定义一个游标变量啊,可以想用时就打开,只要最后close一下。
    csdn的人气很足啊,不过oracle这块好像差点。呵呵
      

  5.   

    to  henghowzc(等待):
    你提供的方法不错,open cr for sqlstr 这种打开方式我以前不会的,太感谢了!to  chw8219(寒冷夏天):
    同感,呵呵