2

我有这样的程序:

Procedure MyProc(param1 IN VARCHAR2 default 'default_value', param2 IN VARCHAR2 default null);      

要在 PL-SQL 中调试它,我正在做:

MyPackage.MyProc(param2 => '20130301');

它在 Hbm 文件中的 Nhibernate 中映射:

<sql-query name="MyMappedProc">
   <![CDATA[  call MyPackage.MyProc(param2 => :parametro2); ]]>
</sql-query>

并在应用程序中被调用:

_Query = Session.GetNamedQuery("MyMappedProc");
_Query.SetParameter("parametro2", "value_var");

var lista = _Query.List<object>();

我遇到了这个错误:

{"ORA-00907: missing right parenthesis"}

有没有办法用 NHibernate 调用带有可选参数的过程?

谢谢。

4

1 回答 1

0

我现在如何在生产代码中执行此操作

<sql-query name="Recalc">
    CALL P_DATA.RECALC.CONST_QUERY(:map, :id)
</sql-query>

然后从 C# 代码

session.GetNamedQuery("Recalc").SetParameter("id", this.id)
    .SetParameter("map", "MyMap").ExecuteUpdate();

像往常一样 ShowSQL 或了不起的 Ayende 的 NHibernate 分析器是你的朋友

于 2013-03-30T23:37:44.693 回答