2010-01-30 7 views
0

------ Utilisation de VS2008, ASP.Net avec C#, Oracle, NHibernate ---- J'ai testé ma procédure stockée. Cela fonctionne mais pas avec NHibernate. Voici les codes:Problème de procédure stockée NHibernate Oracle

Procédure:

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

fichier de mappage:

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

erreur:

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 

Répondre

1

Je viens d'avoir une ORA-00900 avec une sql-requête. Réécriture SQL comme

begin exec THANADELETE ?; end; 

pourrait résoudre le problème

Questions connexes