这个问题我怎么也想不透
我宣告一个变量(retValue), 这个变量在最后会取得Storeprocedure 的回传值
一开始我给这个变量初值的内容为FAIL, 如果Storeprocedure执行正确会回传OK.
程序代码如下String retValue = "FAIL";
CallableStatement cs=cn.prepareCall("{CALL TFN_NEW_TFNNMS_NewCNM(?,?,?,?,?,?,?,?)}");
cs.setString(1, retValue);
....
....
cs.registerOutParameter(1, Types.VARCHAR);
cs.executeUpdate();
retValue = cs.getString(1);
问题来了
我开发的本机是WinXp sp2 Jdk 1.5, 当执行正确, 最后的结果 retValue=OK
测试环境Win 2003 Server Jdk 1.6, 当执行正确, 最后的结果 retValue=OK
正式环境Win 2003 Server Jdk 1.6, 当执行正确, 最后的结果 retValue=OKIL <--啊这是怎么回事啊, 见鬼了~~~~
我宣告一个变量(retValue), 这个变量在最后会取得Storeprocedure 的回传值
一开始我给这个变量初值的内容为FAIL, 如果Storeprocedure执行正确会回传OK.
程序代码如下String retValue = "FAIL";
CallableStatement cs=cn.prepareCall("{CALL TFN_NEW_TFNNMS_NewCNM(?,?,?,?,?,?,?,?)}");
cs.setString(1, retValue);
....
....
cs.registerOutParameter(1, Types.VARCHAR);
cs.executeUpdate();
retValue = cs.getString(1);
问题来了
我开发的本机是WinXp sp2 Jdk 1.5, 当执行正确, 最后的结果 retValue=OK
测试环境Win 2003 Server Jdk 1.6, 当执行正确, 最后的结果 retValue=OK
正式环境Win 2003 Server Jdk 1.6, 当执行正确, 最后的结果 retValue=OKIL <--啊这是怎么回事啊, 见鬼了~~~~
我也想是否程序出了问题? 然而程序是在开发环境试过, 放到
测试环境再放到正式环境执行, 若当真程序出了问题, 应该在
其它的环境也要有同样的结果.除非我在一开始retValue 变量的初值是String retValue = "”;
那么就没有最后怪异的现象, 但这是把眼睛闭起不看而已, 我只能说
或许是ram有问题吧…
的确很奇怪 不过还是应该先怀疑自己的程序 呵呵.
不能在运行环境下调试的话 就多打一些log 应该会有帮助.
第二,这跟你的操作系统也毫无关系
第三,这跟java你写的代码也毫无关系
所以,纯属意外,你不必介意这些问题,又或者,这本身就是你的意思