I've got a stored procedure in Oracle:
procedure Test(results OUT gencursor, id in number) is
v_cursor gencursor;
begin
OPEN v_cursor FOR
select id, name, age from tblcustomers s where s.id = id;
results:=v_cursor;
end Test;
Now, i'd like to execute this procedure using nHibernate ISession.CreateSQLQuery. All the examples I've seen until now use ISession.GetNamedQuery().
So, I'd want to do something like (ToDataTable is my own extension method on IQuery, I have more extension methods which I'd want to stay using in combination with stored procedures):
var result = session
.CreateSQLQuery("call MyPackage.Test(:id)")
.SetDecimal("id", 33)
.ToDataTable();
The code above throw the following exception:
"could not execute query [ call MyPackage.Test(?) ] Name:id - Value:33 [SQL: call MyPackage.Test(?)]"
I've also tried:
var result = session
.CreateSQLQuery("call MyPackage.Test(:result, :id)")
.SetDecimal("id", 33)
.ToDataTable();
That one throw the exception:
Not all named parameters have been set: [result] [call MyPackage.Test(:result, :id)]