我在使用具有out参数的Oracle存储过程时遇到问题。我无权查看实际的存储过程,但这里是方法签名:
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.x.a(Int32 A_0,bt A_1)+3343
Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior,IDisposable disposable,Int32 startRecord,Int32 maxRecords,Boolean nonQuery)+4880
Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior,Boolean nonQuery)+764
Devart.Data.Oracle.OracleCommand.ExecuteNonQuery()+69
Devart.Data.Linq.Provider.DataProvider.ExecuteQuery(CompiledQuery compiledQuery,Object [] parentArgs,Object [] userArgs,Object lastResult)+3675
答案 0 :(得分:2)
我发现了答案!
由于这是我第一次使用Oracle,因此我不知道“同义词”。我让dba创建了存储过程的同义词,现在我摇摆不定!
对于任何有兴趣的人,你可以在这里阅读更多相关信息:
http://www.techonthenet.com/oracle/synonyms.php http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm