是有可能.
你写出动态的sql语句试一下.就是用execute immediate来运行的那种.

解决方案 »

  1.   

    to liuyi8903(西西):你说的方法要怎么做?过程有6个输入参数,比较麻烦。
    过程里有两个游标,用其中一个没有得到想要的鉴权结果的时候再打开另外一个。最郁闷的是,原来都是可以的。然后现在用第一个游标能解决的情况正常,需要用到第二个游标的的情况就得不到正确的结果。
    但是在PLSQL里Test,却一切正常!
      

  2.   

    是不是有些环境自动commit而有些不会?
      

  3.   

    但是我的这个存储过程只是查询的,select的,怎么会关系到commit呢?
      

  4.   

    我跟踪得到的结果是:用到的游标,程序代码里执行存储过程时,该游标查不到记录;但是在客户端,TEST执行存储过程或者就执行游标的sql语句,都能得到相应的记录。这个是为什么啊~~~~~~~~~~~~~~
      

  5.   

    用动态sql史试试。
    如sql :='select id from table';
    execute immediate sql ;
      

  6.   

    你在sql中是否使用了时间变量,当给你时间变量赋一个 字符串(如2004-11-2) 的时候,oracle会自动进行转换,这样会依赖于本地的 NLS_DATE_FORMAT 环境变量,如果你在客户端 test 这个环境变量是你客户端的,如果在服务器上执行,会依赖于服务器上的环境变量.
    检查一下代码,避免日期和字符串的自动转换,手动进行转换(使用TO_DATE()).