#c# #stored-procedures #nhibernate #nhibernate-mapping #queryover
Вопрос:
Как вызвать хранимую процедуру oracle, которая возвращает два параметра out с помощью NHibernate?
PROCEDURE get_data (p_result OUT SYS_REFCURSOR)
IS
BEGIN
OPEN p_result
FOR
SELECT -1 vehicle_key
,-1 source_key
,SYSDATE start_gmt_event_date
,SYSDATE end_gmt_event_date
FROM DUAL;
END get_data;
Ранее у меня была описанная выше хранимая процедура, и в этот раз с помощью приведенного ниже сопоставления я могу вызвать процедуру и получить данные.
Отображение :
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="myassembly" namespace="mynamespace" >
<sql-query name="SelectOpenModel">
<return class="OpenModel" />
{call get_data()}
</sql-query>
</hibernate-mapping>
Код на C#
var g = statelessSession.GetNamedQuery("SelectOpenModel").List<OpenModel>();
Теперь у меня есть некоторые другие требования, в которых мне нужно вернуть два параметра из формы этой хранимой процедуры, поэтому я изменил эту процедуру, как показано ниже.
PROCEDURE get_data (p_result OUT SYS_REFCURSOR,p_result1 OUT number )
IS
BEGIN
OPEN p_result
FOR
SELECT -1 vehicle_key
,-1 source_key
,SYSDATE start_gmt_event_date
,SYSDATE end_gmt_event_date
FROM DUAL;
select 2 into p_result1 from dual;
END get_data;
Кто-нибудь может мне помочь, как я могу вызвать эту хранимую процедуру с помощью NHibernate NamedQuery или любого другого варианта?