【发布时间】: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