Bonjour,
J'aimerais appeler une procédure stockée dans mon fichier de mapping ,
cette procédure insert des données dans une table .
j'ai donc utilisé le tag <sql-insert />.
Mais je n'ai aucune donnée dans ma table ???
Voici le mapping :
<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<!-- DO NOT EDIT: This is a generated file that is synchronized -->
<!-- by MyEclipse Hibernate tool integration. -->
<!-- Created Fri Dec 16 11:31:23 CET 2005 -->
<hibernate-mapping package="com.altair.mapping">
<class name="Mois" table="MOIS">
<id name="moisId" column="MOIS_ID" type="long">
<generator class="sequence">
<param name="sequence">SEQ_MOIS</param>
</generator>
</id>
<version name="version" column="VERSION" />
<property name="moisNumero" column="MOIS_NUMERO" type="int" not-null="true" />
<property name="moisNom" column="MOIS_NOM" type="string" not-null="true" />
<property name="moisAnnee" column="MOIS_ANNEE" type="int" not-null="true" />
<property name="moisQuarter" column="MOIS_QUARTER" type="string" not-null="true" />
<property name="moisFormat" column="MOIS_FORMAT" type="string" not-null="true" />
<property name="actif" column="ACTIF" type="boolean" not-null="true" />
<set name="capexEcheancierSet" inverse="true" cascade="all-delete-orphan" >
<key column="CAPEX_ECHEANCIER_PERIODE" property-ref="moisFormat" />
<one-to-many class="CapexEcheancier"/>
</set>
<set name="grandlivreOdSet" inverse="true" cascade="all-delete-orphan" >
<key column="GRANDLIVRE_OD_PERIODE" property-ref="moisFormat" />
<one-to-many class="GrandlivreOd"/>
</set>
<set name="budgetSet" inverse="true" cascade="all-delete-orphan" >
<key column="BUDGET_PERIODE" property-ref="moisFormat" />
<one-to-many class="Budget"/>
</set>
<set name="capexDiversSet" inverse="true" cascade="all-delete-orphan" >
<key column="CAPEX_DIVERS_PERIODE" property-ref="moisFormat" />
<one-to-many class="CapexDivers"/>
</set>
<set name="capexForecastSet" inverse="true" cascade="all-delete-orphan" >
<key column="CAPEX_FORECAST_PERIODE" property-ref="moisFormat" />
<one-to-many class="CapexForecast"/>
</set>
[COLOR="Red"] <sql-insert callable="true">{ call MOIS_PROC }</sql-insert> [/COLOR]
</class>
</hibernate-mapping>
voici ma procedure :
CREATE OR REPLACE PROCEDURE MOIS_PROC IS
BEGIN
DECLARE
TYPE ListMois IS VARRAY(12) OF VARCHAR2(10);
my_ListMois ListMois := ListMois('JANVIER','FEVRIER','MARS','AVRIL','MAI','JUIN','JUILLET','AOUT','SEPTEMBRE','OCTOBRE','NOVEMBRE','DECEMBRE');
moisChar VARCHAR2(2);
quarter VARCHAR2(2);
BEGIN
FOR a IN 2000..2051
LOOP
FOR m IN 1..12
LOOP
IF m < 10 then
moisChar := '0'||to_char(m);
else
moisChar := to_char(m);
END IF;
IF m BETWEEN 1 AND 3 THEN
quarter :='Q1';
ELSIF m BETWEEN 4 AND 6 THEN
quarter :='Q2';
ELSIF m BETWEEN 7 AND 9 THEN
quarter :='Q3';
ELSIF m BETWEEN 10 AND 12 THEN
quarter :='Q4';
END IF;
INSERT INTO MOIS(MOIS_ID, MOIS_NUMERO, MOIS_NOM, MOIS_ANNEE, MOIS_QUARTER, MOIS_FORMAT,ACTIF,VERSION)
VALUES (SEQ_MOIS.nextval,m,my_ListMois(m),a,quarter,'M'||a||moisChar,1,0);
COMMIT;
END LOOP;
END LOOP;
END;
END ;
/
Merci pour votre aide.
Fat.
|