楼主是新手 求各位大大指教,今天写了段代码被人说了,但是我不知道怎么错了。求指教   定义了一个ref 形式的游标 , 因为要取的信息条件多差不多 我就用了动态SQl    str_:= 'select stu_num from student where  stu_no =:stu_no_';
   open get_num_ for str using stu_no;
   str_where:=' and 1=1 ';
   open get_num_  for str_||str_where;
   str_where:=' and 12=12 ';
   open get_num_  for str_||str_where;
  ·····
  ·····
 大概意思就是这样了不断的改变where 语句然后再次打开游标取值,他让我每个open 后面都要加一个close语句,个人感觉加上很多余。 不知道是不是应该加上。 这样编译和运行都不会出错。但是不知道是不是应该加上更好。求大大指教。PS:我问他为什么 他也说不出个所以然来。
PPS: 菜鸟第一次发帖 求解决
 
  
      SQLref curcor

解决方案 »

  1.   


    因为cursor资源是有限的,如果不关闭游标,一直占用cursor资源。。另外也不建议用open...fetch...close这种写法,
    直接用for 这种打开游标的写法。
      

  2.   

    但是这个动态游标的写法 怎么使用for 啊 网上查不到啊
      

  3.   

    for xxx in SELECT XXX  FROM XXX WHERE XXX LOOP
       要做的处理
    END LOOP;
      

  4.   


    额~~~貌似 不对啊  我用的10g 这样写不行啊   for 一个动态sql会报错啊
      

  5.   


    大神 我怎么给你分啊 ~~~~~新手 不会啊 有结贴功能,,,,
    额~~~还不能接帖子啊  没问到想问的  
    但是这个动态游标的写法 怎么使用for 啊