遇到个游标奇怪的问题,请高手来帮忙
代码大致如下:
PRO_INDEXDATA(IN_TABLES   VARCHAR2)
is
   cursor A_CUR(CUR_TABLES VARCHAR2) is
     SELECT TABLE_NAME
       FROM ALL_TABLES
      WHERE TABLE_NAME IN (CUR_TABLES);
   AAA A_CUR%rowtype;
V_TABLES    VARCHAR2(200);
begin
   if IN_TABLES   is null then
...
   else
    V_TABLES := '''' || REPLACE(UPPER(IN_TABLES), ',', ''',''') || ''''---前几天在论坛问别人的,意思是如果遇到aaa,bb,cc结果变成'aaa','bb','cc',但是好像这样写当游标参数有问题,结果查不出记录来,不知道怎么搞的,有谁能解决这个问题。dbms_output.put_line(V_TABLES);  ----能打印的出for ..LOOP
dbms_output.put_line(1);     --打印不出,查不到记录,直接跳出游标end loop
end;
------解决方案--------------------
这种情况不用转,直接用传进的IN_TABLES查询,改下游标的SQL即可
SQL code
 cursor A_CUR(CUR_TABLES VARCHAR2) is
  SELECT TABLE_NAME
  FROM ALL_TABLES
  WHERE  instr(','||upper(CUR_TABLES)||',',','||TABLE_NAME||',')>0;