【问题标题】:oracle Stored Procedure with Out parameter带有 Out 参数的 oracle 存储过程
【发布时间】:2013-11-02 02:17:27
【问题描述】:

我在使用具有 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.x.a(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 compiledQuery, Object[] parentArgs, Object[] userArgs, Object lastResult) +3675

【问题讨论】:

  • 您收到的错误信息是什么?
  • 我不认为这是重复的,我没有收到类似的错误。我是否正确调用存储过程?我找不到任何与我的用法类似的文档。
  • 请将完整的错误堆栈放在这里。您提出的四行错误并未说明错误发生的确切位置。我认为过程CHECKPASSWORDUSED 正在调用另一个不存在的过程CHECK_PASSWORD_USED

标签: c# oracle stored-procedures


【解决方案1】:

我已经找到答案了!

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-07
    • 2012-03-11
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 2019-04-26
    相关资源
    最近更新 更多