2

我在使用具有 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);
}

我必须定义一个输出变量,但我不确定我是否使用了这个权利。我在正确的轨道上吗?

编辑:我收到的错误消息是:

[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。执行非查询()+69
Devart.Data.Linq.Provider.DataProvider.ExecuteQuery(CompiledQuery 编译查询,对象 [] parentArgs,对象 [] userArgs,对象 lastResult)+3675

4

1 回答 1

2

我已经找到答案了!

因为这是我第一次使用 Oracle,所以我不知道“同义词”。我让 dba 为存储过程创建了一个同义词,现在我正在摇摆不定!

对于任何感兴趣的人,您可以在此处阅读有关它的更多信息:

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

于 2013-10-24T14:13:25.063 回答