一个存储过程,调试时没问题,但是在C#里运行就报错:
ora-01036: 非法的变量名/编号
百度了一番,据说因为很多个错误都会报这个错,没发现合适我的(参数顺序匹配,大小匹配等),只好自己再试试:
我调用的方法:
OracleParameter[] parameters ={
new OracleParameter("vipno",OracleType.VarChar,50),
new OracleParameter("point",OracleType.VarChar,30),
new OracleParameter("str_reason ",OracleType.VarChar,20), //str_reason 我这里多了个空格,
new OracleParameter("myresult",OracleType.Int32)
};
最后没辙只好只保留一个参数,去调试,即存储过程只有第一个参数,我调用也只用一个参数,其他参数注释掉,经过测试没有问题。
大概第三个参数时发现了问题,我的“”里面和存储过程的第三个参数相比多了一个空格,就是因为这个空格,导致出现了这个不好查找的错误。
问题到此也就解决了。
其实说到底还要要大家要有方法,多去尝试。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/handsome1234/article/details/47061749