带有Out参数的oracle存储过程

时间:2013-10-23 17:01:10

标签: c# oracle stored-procedures

我在使用具有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 ​​
  

1 个答案:

答案 0 :(得分:2)

我发现了答案!

由于这是我第一次使用Oracle,因此我不知道“同义词”。我让dba创建了存储过程的同义词,现在我摇摆不定!

对于任何有兴趣的人,你可以在这里阅读更多相关信息:

  

http://www.techonthenet.com/oracle/synonyms.php   http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm