B
BmwHans1
Unregistered / Unconfirmed
GUEST, unregistred user!
最近发现一个可怕的问题,我编译到Oracle8.0.6数据库中的存储过程在调用时,参数顺序是颠倒了!比如有一个过程的传入传出参数顺序是<br>pi_iInput1 in number,<br>pi_iInput2 in varchar2,<br>po_oResult out number,<br>po_oErrMsg out varchar2<br><br>而用PL/SQL Developer 工具进行测试(TEST)时,显示的参数顺序却是反过来的,因此在程序调用时就报错。我是无意中发现这个情况的。<br><br>我们的系统是三层结构,中间层是COM+组件服务,组件中调用存储过程的方法是个通用方法,客户端传给该方法的参数包括要调用的存储过程名称、传入参数(用OleVariant数组)和返回值变量。中间层调用存储过程时的传参就是按Params的顺序依次从传入参数中取出后赋值的,以前一直用的好好的,这两天经常会报错,经软件调试发现上述问题。<br><br>但如果我把出现问题的过程增加一个参数重新编译一下,再删掉增加的参数后再编译一下,问题就可以暂时解决,但不定期的又会出现这种情况!<br><br>真是不明白是什么原因,烦死我了,请高人解答!