我有一个这样的程序:
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调用带有可选参数的过程?
感谢。
答案 0 :(得分: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或marvelous Ayende's NHibernate profiler是你的朋友