Oracle存储过程,SYS_REFCURSOR和NHibernate [英] Oracle stored procedures, SYS_REFCURSOR and NHibernate
问题描述
我有我连接到传统的Oracle(10.2克)数据库和我想使用NHibernate的(2.0.1)给我回的对象从存储过程。在考虑中的存储过程使用SYS_REFCURSOR返回结果。按照文档这应该是可行的,但我发现一个几个的职位,否则建议在互联网上
下面是我的意译代码:
映射文件:
< XML版本=1.0编码=UTF-8>?;
<休眠映射的xmlns =金塔:NHibernate的映射 - 2.2
装配=OracleStoredProcedures命名空间=OracleStoredProcedures>
<类名=人可变=false的>
< ID名称=PersonCodeTYPE =AnsiString类型一栏=PERSONCODE>
<生成器类=分配/>
< / ID>
<属性名=姓名类型=字符串栏=PERSON_NAME/>
<属性名=姓氏类型=字符串栏=PERSON_SURNAME/>
< /班>
< SQL查询的名称=getpeople>
<返回类=人/>
EXEC RS_DB.GETPERSONTEST
< / SQL查询>
< /休眠映射>
存储过程:
CREATE OR REPLACE PROCEDURE RS_DB.GETPERSONTEST(
io_cursor IN OUT SYS_REFCURSOR
)
为
BEGIN
打开io_cursor对于
选择PERSONCODE ,PERSON_NAME,PERSON_SURNAME
距离人民
端GETPERSONTEST;
据我记得这是一个错误我也发现一对夫妇几年前与甲骨文工作的时候,我已经在NH跟踪回溯问题,是固定的,但对2.1.1GA版本;您可以验证这是你有同样的问题?
https://nhibernate.jira.com/browse/NH-847
I have a legacy Oracle (10.2g) database that I'm connecting to and I'd like to use NHibernate (2.0.1) to give me back objects from a stored procedure. The stored procedure in question uses a SYS_REFCURSOR to return results. According to the documentation this should be doable but I've found a few posts on the internet that suggest otherwise.
Here's my paraphrased code:
Mapping file:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="OracleStoredProcedures" namespace="OracleStoredProcedures">
<class name="Person" mutable="false">
<id name="PersonCode" type="AnsiString" column="PERSONCODE">
<generator class="assigned" />
</id>
<property name="Name" type="String" column="PERSON_NAME" />
<property name="Surname" type="String" column="PERSON_SURNAME" />
</class>
<sql-query name="getpeople">
<return class="Person" />
EXEC RS_DB.GETPERSONTEST
</sql-query>
</hibernate-mapping>
Stored procedure:
CREATE OR REPLACE PROCEDURE RS_DB.GETPERSONTEST (
io_cursor IN OUT sys_refcursor
)
IS
BEGIN
OPEN io_cursor FOR
SELECT PERSONCODE, PERSON_NAME, PERSON_SURNAME
FROM PEOPLE
END GETPERSONTEST;
As far as I remember this was a bug I also found a couple of years ago when working with oracle, I've tracked back the issue in NH tracker and is fixed but on version 2.1.1GA; Can you verify that this is the same problem you have? https://nhibernate.jira.com/browse/NH-847
这篇关于Oracle存储过程,SYS_REFCURSOR和NHibernate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!