我在使用具有out参数的Oracle存储过程时遇到麻烦。我无权查看实际存储的proc,但这是方法签名:
CHECKPASSWORDUSED (System.Decimal USER_IN, System.String PASSWORD_IN, out System.Decimal PW_FAIL)
这就是我要称呼它的方式。
public decimal CheckIfPasswordUsed(long userId, string password)
{
decimal? used;
_context.CHECKPASSWORDUSED(userId, password, out used);
return Convert.ToDecimal(used);
}
我必须定义一个out变量,但不确定是否正在使用此权限。我在正确的轨道上吗?
编辑:我收到的错误消息是:
[OracleException(0x80004005):ORA-06550:第2行,第3列:
PLS-00201:标识符'CHECK_PASSWORD_USED'必须声明为
ORA-06550:第2行,第3列:
PL / SQL:语句已忽略]
Devart.Data.Oracle。 bc.d()+872
Devart.Data.Oracle.an.i()+112
Devart.Data.Oracle.an.c()+
3016 Devart.Data.Oracle.xa(Int32 A_0,bt A_1)+3343
Devart .Data.Oracle.OracleCommand.InternalExecute(CommandBehavior行为,IDisposable一次性,Int32 startRecord,Int32 maxRecords,布尔非查询)+4880
Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior行为,布尔非查询)+764
Devart.Data.Oracle.OracleCommand。 ExecuteNonQuery()+69
Devart.Data.Linq.Provider.DataProvider.ExecuteQuery(CompiledQuery createdQuery,Object [] parentArgs,Object [] userArgs,Object lastResult)+3675
我已经找到答案了!
由于这是我第一次使用Oracle,因此我没有意识到“同义词”。我让dba创建了存储过程的同义词,现在我摇摆不定!
对于任何有兴趣的人,您可以在这里阅读更多信息:
http://www.techonthenet.com/oracle/synonyms.php http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句