问题是这样:
OPEN OUT_DATA FOR DBMS_LOB.substr(V_SQL,
                                    DBMS_LOB.getlength(V_SQL),
                                    1);
V_SQL是一块在存储过程中拼起来的SQL语句,现在在OPEN游标的时候老是报错说语法错误,问题是我直接执行这个V_SQL可以得到结果集!!!请高手指教。会不会因为V_SQL长度问题? 里面的空白字符问题? 换行?

解决方案 »

  1.   

    strCursorSql := 'select distinct ' || secondField || ' from ' || strTable;
      OPEN cur FOR strCursorSql;  loop
        Fetch cur into secondFieldValue;
        Exit when cur%notfound;   
        ...
      end loop;
      

  2.   

    open 游标的时候 报错 ORA-00921: 意外的 SQL 命令结尾
      

  3.   


    跟一下DBMS_LOB.substr(V_SQL,DBMS_LOB.getlength(V_SQL),1);这个结果咯顺便说一下,如果你的V_SQL中存在汉字,getlength(....)恐怕返回的是字符数目,而不是字节数目,这样截取的字符串不是你所想像长度的字符串