加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Oracle存储过程,SYS_REFCURSOR和NHibernate

发布时间:2020-12-15 07:44:59 所属栏目:百科 来源:网络整理
导读:我有一个遗留的Oracle(10.2g)数据库,我正在连接,我想使用NHibernate(2.0.1)从存储过程中返回对象.有问题的存储过程使用SYS_REFCURSOR返回结果.根据 documentation,这应该是可行的,但我在互联网上发现 few posts,否则. 这是我的释义代码: 映射文件: ?xml ve
我有一个遗留的Oracle(10.2g)数据库,我正在连接,我想使用NHibernate(2.0.1)从存储过程中返回对象.有问题的存储过程使用SYS_REFCURSOR返回结果.根据 documentation,这应该是可行的,但我在互联网上发现 few posts,否则.

这是我的释义代码:

映射文件:

<?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>

存储过程:

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;

解决方法

据我记得这是我几年前在与oracle合作时发现的一个错误,我已经在NH跟踪器中追踪了这个问题并且修复了但是版本为2.1.1GA;你能证实这是同样的问题吗?
https://nhibernate.jira.com/browse/NH-847

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读