简体   繁体   English

NHibernate Oracle存储过程问题

[英]NHibernate Oracle stored procedure problem

------Using VS2008, ASP.Net with C#, Oracle, NHibernate---- I have tested my stored procedure. ------将VS2008,ASP.Net和C#,Oracle,NHibernate一起使用-我已经测试了存储过程。 It's working but not with NHibernate. 它正在工作,但不适用于NHibernate。 Here are the codes: 以下是代码:

Procedure : 程序:

create or replace procedure ThanaDelete (id number) as
begin
 delete from thana_tbl where thana_code = id;
end

Mapping File: 映射文件:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
  <class name="DataTransfer.Models.Thana, DataTransfer" table="THANA_TBL">
    <id name="THANA_CODE" column="THANA_CODE" type="Int32" unsaved-value="0">
      <generator class="native">
        <param name="sequence">
          SEQ_TEST
        </param>
      </generator>
    </id>
    <property name="THANA_NAME" column="THANA_NAME" type="string" not-null="false"/>
    <property name="DISTRICT_CODE" column="DISTRICT_CODE" type="Int32" not-null="false"/>
    <property name="USER_ID" column="USER_ID" type="string" not-null="false"/>
    <property name="TRANSACTION_DATE" column="TRANSACTION_DATE" type="Date" not-null="false"/>
    <property name="TRANSACTION_TIME" column="TRANSACTION_TIME" type="string" not-null="false"/>

    <sql-delete>exec THANADELETE ? </sql-delete>
  </class>
</hibernate-mapping>

error: 错误:

Message: could not delete: [DataTransfer.Models.Thana#10][SQL: exec THANADELETE ?]
Source: NHibernate
Inner Exception
    System.Data.OracleClient.OracleException
    Message: ORA-00900: invalid SQL statement

I just had an ORA-00900 with an sql-query. 我刚刚有一个带有SQL查询的ORA-00900。 Rewriting your SQL as 将您的SQL重写为

begin exec THANADELETE ?; end;

might solve the problem 可能解决问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM