为什么一个存储过程在代码里执行和在PLSQL里调试的结果不一样? 是有可能.你写出动态的sql语句试一下.就是用execute immediate来运行的那种. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to liuyi8903(西西):你说的方法要怎么做?过程有6个输入参数,比较麻烦。过程里有两个游标,用其中一个没有得到想要的鉴权结果的时候再打开另外一个。最郁闷的是,原来都是可以的。然后现在用第一个游标能解决的情况正常,需要用到第二个游标的的情况就得不到正确的结果。但是在PLSQL里Test,却一切正常! 是不是有些环境自动commit而有些不会? 但是我的这个存储过程只是查询的,select的,怎么会关系到commit呢? 我跟踪得到的结果是:用到的游标,程序代码里执行存储过程时,该游标查不到记录;但是在客户端,TEST执行存储过程或者就执行游标的sql语句,都能得到相应的记录。这个是为什么啊~~~~~~~~~~~~~~ 用动态sql史试试。如sql :='select id from table';execute immediate sql ; 你在sql中是否使用了时间变量,当给你时间变量赋一个 字符串(如2004-11-2) 的时候,oracle会自动进行转换,这样会依赖于本地的 NLS_DATE_FORMAT 环境变量,如果你在客户端 test 这个环境变量是你客户端的,如果在服务器上执行,会依赖于服务器上的环境变量.检查一下代码,避免日期和字符串的自动转换,手动进行转换(使用TO_DATE()). 一个很小的问题! 这样的in如何改 。有办法优化吗?谢谢额 oracle的‘转换函数’怎么转啊 如何实现在函数中返回表??? 创建varray类型出错! 不小心删除表空间!!!!!! 联不上oracle数据库,为什么 Oracle Developer安装完后的奇怪现象!!!! 这个查询我头都晕了。(立即结分) 数据库表的记录删除的问题 在本版得分升到四条裤衩了,散分! 如何在一个表里随机读取N条数据
过程里有两个游标,用其中一个没有得到想要的鉴权结果的时候再打开另外一个。最郁闷的是,原来都是可以的。然后现在用第一个游标能解决的情况正常,需要用到第二个游标的的情况就得不到正确的结果。
但是在PLSQL里Test,却一切正常!
如sql :='select id from table';
execute immediate sql ;
检查一下代码,避免日期和字符串的自动转换,手动进行转换(使用TO_DATE()).