IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Insertion dans une base Oracle


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 31
    Points
    31
    Par défaut Insertion dans une base Oracle
    salut tous le monde;
    j'ai deux tables dans une base données oracle, lorsque je veux insérer mes deux enregistrement il me donne l'erreur suivante sachant que je me base sur hiberbate pour faire mon save:

    erreur out org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
    org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1007)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:354)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
    at com.web.struts.action.EtatsRcAction.execute(EtatsRcAction.java:42)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.sql.BatchUpdateException: ORA-02291: violation de contrainte (SIPIC_TRIB.FK) d'intégrité - touche parent introuvable

    at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
    at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
    ... 28 more
    voila ma classe(partie insertion):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    EtatsRc etatsRc=new EtatsRc(objForm.getNumeroDepot(),objForm.getCodeTribunal(),objForm.getNumRc(),objForm.getExercice(),objForm.getDateDebut(),objForm.getDateFin(),objForm.getModele(),objForm.getAbrRc(),objForm.getIdentifFisc(),objForm.getDateDepot(),objForm.getNatureDeposant(),objForm.getCinDeposant(),objForm.getNomDeposant(),objForm.getPrenomDeposant(),objForm.getMontantTaxe(),objForm.getNumeroQuittance(),objForm.getDateQuittance(),objForm.getEnvoyeTc()); 
                            sessionOracle.save(etatsRc);
                            Actes   actes=new Actes(objForm.getIdentifiant(),objForm.getNumeroDepot(),objForm.getCodeTribunal(),objForm.getNumRc(),objForm.getTypeActe(),objForm.getNatureActe(),objForm.getFormeActe(),objForm.getDateOriginal(),objForm.getNbActes());
                            sessionOracle.save(actes);
                            //Oracle EtatsRc
                            sessionOracle.getTransaction().commit();        
                            HibernateUtilDbOracle.getSessionFactory().close();

    merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Votre problème est
    Caused by: java.sql.BatchUpdateException: ORA-02291: violation de contrainte (SIPIC_TRIB.FK) d'intégrité - touche parent introuvable

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 31
    Points
    31
    Par défaut
    Je sais bien mon Probleme mais je veux savoir comment agir est ce que en suivant cette méthodologie:


    ORA-02291: integrity constraint (string.string) violated - parent key not found
    Oracle Error :: ORA-02291

    integrity constraint (string.string) violated - parent key not found
    Cause

    A foreign key value has no matching primary key value.
    Action

    Delete the foreign key or add a matching primary key.
    Merci en tout cas.

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    La valeur fournie pour la colonne indiquée par la contrainte n’existe pas dans la table parent indiquée par la contrainte.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 31
    Points
    31
    Par défaut
    Oui je comprend ce point mais le problème c est que moi je suis sure que la contrainte existe dèja dans la table père, par conséquent je pense que la meilleur solution est d enlever cette clé étrangère et d insérer les deux valeurs;
    merci en tout cas pour votre soutien

  6. #6
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    La meilleure solution consiste à garder les contraints dans la base.

  7. #7
    Membre confirmé Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Points : 577
    Points
    577
    Par défaut
    Je vois effectivement que deux objets sont sauvé par hibernate : peut-être qu'il y a un problème d'ordre d'insertion.
    Si les deux objets sont en dépendance il faudrait que l'un et l'autre comme propriété ou son ID.
    Si la dépendance provient d'un objet différent de ces deux et que tu connais la clé, un petit select de l'objet père avant et cet objet père ou son ID devrait être une propriété de l'objet fils. Si ce select ne renvoie pas d'objet père alors y a un problème sur le format de son identifiant, trim, majuscule, encoding...

Discussions similaires

  1. [ODBC] Insertion d'un fichier dans une base oracle 8i via ODBC
    Par garfield_fr dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/12/2010, 09h58
  2. Probleme d'insertion dans une base oracle
    Par FstDsi dans le forum JDBC
    Réponses: 7
    Dernier message: 26/05/2008, 12h01
  3. Insertion des fichiers pdf dans une base oracle
    Par arezki76 dans le forum SQL
    Réponses: 2
    Dernier message: 20/07/2007, 16h39
  4. [C#] Insertion dans une base Access .mdb
    Par borgfabr dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/03/2005, 15h30
  5. Réponses: 10
    Dernier message: 24/02/2005, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo