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

JDBC Java Discussion :

SELECT à l'intérieur de INSERT INTO


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut SELECT à l'intérieur de INSERT INTO
    Salut tout le monde ,
    Bon voilà je suis un débutant dans le domaine de la connectivité avec java,mais je l'ai réalisé et je me suis connecté à ma base (JDBC).
    mon problème est le suivant:

    je cherche à remplir une table à partir d'une autre table.

    Je travaille avec Netbeans et j'ai crée deux méthodes dans ma classe base,une pour l'exécution des requêtes (execute.Query) que j'ai appelé "Select(String req)" et l'autre pour l'excéution de la mise à jour(executeUpdate) que j'ai appelé "MiseAJour(String req)" !jusqu'à tout est bien,sauf que je veux exécuter une requête SQL avec les 2 méthodes de java bien sûr , mais ma requête est composée d'un SELECT à l'intérieur de INSERT INTO !!!
    Bon ma question est comment la faire exécuter avec mes deux méthodes select(string req) et miseajour(string req) ????

    j'ai pensé à récupérer les données de la table source dans un tableau, puis je ferais une boucle dans laquelle j'utilise ta méthode MiseAJour en m'aidant du tableau que je viens de créer.

    mais je ne sais pas comment l'écrire à l'aide de mes deux méthodes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public void select(String requete){
     
     
    try {
     
                            stmt = cnx.createStatement();
    resultats = stmt.executeQuery(requete);
                            ResultSetMetaData rsmd = resultats.getMetaData();
    }
     
                     catch (SQLException e) {
    System.out.println("Erreur:Anomalie lors de l'execution de la requête");
    }
     
      }


    Et l'autre méthode MiseAJour(req):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public void miseajour(String requete) throws SQLException {
     
     
                            try {
                                    stmt = cnx.createStatement();
                                    stmt.executeUpdate(requete);
                                }
     
                            catch (SQLException e) {
     
                                System.out.println("Erreur:Anomalie lors de l'execution de la mise à jour");
                                }
     
     
                    }
    Donc j'ai ma ResultSetMetaData rsmd c'est elle qui contient le tableau !!
    et après comment je vais mettre le tableau dans la méthode MiseAJour(req) ??
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Quel est le problème avec le fait de passer directement ta requete dans executeUpdate?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Salut ,

    Si je fais ce que vous me dites,j'ai eu droit au message de l'exception (Erreur:Anomalie lors de l'execution de la mise à jour !) , mais des fois il me donne un Pointeur null
    Exception in thread "main" java.lang.NullPointerException
    Je sais que ce dernier message , veut dire que il y a un champ vide dans ma table, oui il y a un champ vide mais avec le INSERT INTO je le remplie.

    Voilà le code que je veux exécuter avec java: (c'est en SQL)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    insert into anas_gre (
     select ho.poste poste ,ho.entite entite,po.signe signe ,ho.date_operation date_operation,ho.date_valeur date_valeur ,ho.groupe_2 marche,af.description code_isin,ho.quantite quantite ,DECODE (ho.poste,
                     'AOBL', ho.montant_reglement,
                     'VOBL', ho.montant_reglement,
                     'SBB_OBL', ho.montant_reglement,
                     'BSB_OBL', ho.montant_reglement,
                     'SBB_OBL', ho.montant_reglement,
                     'FSBB_OBL', round(ho.montant_reglement
                      - ((ho.negocie_3 / 1.10) * 0.10),2),
                     'FBSB_OBL',round( ho.montant_reglement
                      - ((ho.negocie_3 / 1.10) * 0.10),2)
                    ) montant_net,cf.code code_affilie,'O','N',ho.num_operation,'N' ,'N','N',ho.contrepartie from op.histo_operation ho,op.affilie_code af ,op.operation_poste po,op.code_affilie cf
    where poste in ('AOBL','VOBL','SBB_OBL','BSB_OBL','FSBB_OBL','FBSB_OBL') and groupe_1 is not null and  groupe_1 not in('CDG') and statut in ('V','P','U') and ho.poste=po.code and af.attribut='XX' and af.code_ref =ho.titre and cf.client=ho.groupe_1 and date_valeur=:date_operation and not exists (select 	1 from op.spec_gregre gr where 	gr.num_operation=ho.num_operation	))
    Merci

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par Nirspote Voir le message
    Salut ,

    Si je fais ce que vous me dites,j'ai eu droit au message de l'exception (Erreur:Anomalie lors de l'execution de la mise à jour !)
    Affiche l'exception, ce message ne nous est d'aucune utilité.

    , mais des fois il me donne un Pointeur null
    Exception in thread "main" java.lang.NullPointerException
    Je sais que ce dernier message , veut dire que il y a un champ vide dans ma table,
    Non, ca veux dire que, coté java, tu a déférencé un objet null. Les erreurs coté serveur SQL génère toujours de SQLException.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    il ne m'affiche rien sauf ce que "Annomalie ..." c'est une SQLException !!!

    J'ai pas compris ce que veut dire,Déférencer un objet nul !!
    Merci d'avance.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Re-salut,
    quelqu'un a une idée de mon problème ou bien ,je peux vous donner le code complet de mon programme java,si ça vous aidera à identifier mon problème !merci je suis désépséré depuis 4 jours que je cherche la solution , alors s'il vous plait aidez moi , et merci encore

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par Nirspote Voir le message
    il ne m'affiche rien sauf ce que "Annomalie ..." c'est une SQLException !!!
    Non anomalie c'est du texte que toi tu affiche et qui n'a rien à voir avec l'origine de l'exception. Remplace ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                            catch (SQLException e) {
     
                                System.out.println("Erreur:Anomalie lors de l'execution de la mise à jour");
                                }
    Par celui-ci et t'y verra déjà beaucoup plus clair
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                            catch (SQLException e) {
                                 e.printStackTrace();
                                }
    J'ai pas compris ce que veut dire,Déférencer un objet nul !

    Faire typiquement (mais généralement de manière beaucoup plus indirecte) ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UneClasse c = null;
    .....
    c.faireQuelqueChose();

    comme c est null, impossible de faire quoi que ce soit comme appel de méthode ou lecture de propriété dessus.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Salut et merci d'avoir suivi mon sujet

    Bon pour le déférencement je n'ai pas de problème ,chaque variable nulle est remplie,avant l'appel.

    et voilà ce que l'exception m'affiche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    java.sql.SQLException: ORA-00928: Mot-clé SELECT absent
     
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
            at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
            at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
            at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
            at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
            at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
            at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
            at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
            at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
            at stagejava.Connect.miseajour(Connect.java:133)
            at stagejava.main.main(main.java:104)
    Merci

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    c'est déjà mieux ^^

    on peux voir la ligne 104 du main? Qu'on vois ce que tu passe en paramètre de ta méthode, exactement.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Merci ,
    BOn voilà la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.miseajour(requete); //Exécution d'une mise à jour
    je ne vois pas ce qu'il y a de faux dans cette ligne

    Puisque ce n'est suffisant je vais lister les importantes commandes dans le main:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Connect c=new Connect();
    c.Connect(BASE,USER,PASSWD);
    Connect.getConnection();
     
    System.out.println("Entrez la requête à éxecuter:");
                Scanner sr=new Scanner(System.in);
                String requete=sr.nextLine();
     
    c.miseajour(requete);
    c.Deconnexion();
    et le la classe de base Connect.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     public void miseajour(String requete) throws SQLException {
     
     
                           try
                           {
                                    stmt=cnx.createStatement();
                                    stmt.executeUpdate(requete);
                                }
     
                           catch (SQLException e) {
     
                                System.out.println(" /!\\ Erreur:Anomalie lors de l'execution de la mise à jour /!\\ ");
                                e.printStackTrace();
                                }
     
                    }
    Merci d'avance

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Vu que tu lit la requete avec readline et que la requete montrée plus haut fait plusiuers ligne, il y a fort a parier que ce soit la requetes suivante qui pose problème.

    En effet le scanner va travailler ligne par ligne, hors la requete envoyée à jdbc doit être d'un seul tenant.

    Tu peux afficher d'ailleurs la requete en écrivant ceci dans ton catch:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    catch (SQLException e) {
     
                                System.out.println(" /!\\ Erreur:Anomalie lors de l'execution de la mise à jour /!\\: "+requete);
                                e.printStackTrace();
                                }

  12. #12
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Euuuh oui t'as raison il ne prends en considération que la première ligne !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     /!\ Erreur:Anomalie lors de l'execution de la mise à jour /!\: insert into anas_gre (
    java.sql.SQLException: ORA-00928: Mot-clé SELECT absent
     
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
            at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
            at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
            at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
            at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
            at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
            at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
            at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
            at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
            at stagejava.Connect.miseajour(Connect.java:133)
            at stagejava.main.main(main.java:104)
    Alors comment faire pour qu'il accepte toute la requete ?? et merci

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    mettre toute la requete dans une seule String.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    C'est ça ce que je fais normalement, j'ai ma requete je la colle toute entiere, et je la mets sur une meme ligne !!!


    Edit: toujours des erreurs mais dans l'exception il m'affiche toute la requete, il a pris toute ma requete , bon il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.sql.SQLException: ORA-00907: Parenthèse de droite absente
    je vais voir la parenthèse manquante et je vais vous informer.



    Merci d'avance

  15. #15
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Salut je ne trouve aucune parenthèse manquantes (je sais que c'est débile comme problème , mais il n y pas manque de parenthèse)

    bon voilà l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     /!\ Erreur:Anomalie lors de l'execution de la mise à jour /!\: insert into anas_gre(select ho.poste poste ,ho.entite entite,po.signe signe ,ho.date_operation date_operation,ho.date_valeur date_valeur ,ho.groupe_2 marche,af.description code_isin,ho.quantite quantite ,DECODE (ho.poste,'AOBL', ho.montant_reglement,'VOBL', ho.montant_reglement,'SBB_OBL', ho.montant_reglement,'BSB_OBL', ho.montant_reglement,'SBB_OBL', ho.montant_reglement,'FSBB_OBL', round(ho.montant_reglement- ((ho.negocie_3 / 1.10) * 0.10),2),'FBSB_OBL',round( ho.montant_reglement- ((ho.negocie_3 / 1.10) * 0.10),2)) montant_net,cf.code code_affilie,'O','N',ho.num_operation,'N' ,'N','N',ho.contrepartie from op.histo_operation ho,op.affilie_code af ,op.operation_poste po,op.code_affilie cfwhere poste in ('AOBL','VOBL','SBB_OBL','BSB_OBL','FSBB_OBL','FBSB_OBL') and groupe_1 is not null and  groupe_1 not in('CDG') and statut in ('V','P','U') and ho.poste=po.code and af.attribut='XX' and af.code_ref =ho.titre and cf.client=ho.groupe_1 and date_valeur=:date_operation and not exists (select 1 from op.spec_gregre gr where gr.num_operation=ho.num_operation))
    java.sql.SQLException: ORA-00907: Parenthèse de droite absente
     
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
            at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
            at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
            at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
            at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
            at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
            at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
            at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
            at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
            at stagejava.Connect.miseajour(Connect.java:133)
            at stagejava.main.main(main.java:104)
    Merci d'avance

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    il manque un espace avant ton where, du coup il sait pas quoi faire avec ton poste et te dit qu'il attendait là la parenthèse fermante.

  17. #17
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 792
    Points
    4 792
    Par défaut
    j'ai l'impression que ta clause where est bizarre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... po,op.code_affilie cfwhere poste in ...
    Je ne connais pas Oracle mais ça ne doit pas marcher cfwhere ...

  18. #18
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    comme je l'ai dit il manque un espace entre cf et where

  19. #19
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 792
    Points
    4 792
    Par défaut
    comme je l'ai dit il manque un espace entre cf et where
    Désolé nos messages se sont croisés ...

  20. #20
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Salut les amis et merci.
    Bon là je rencontre un problème un peu sérieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     /!\ Erreur:Anomalie lors de l'execution de la mise à jour /!\: insert into anas_gre(select ho.poste poste ,ho.entite entite,po.signe signe ,ho.date_operation date_operation,ho.date_valeur date_valeur ,ho.groupe_2 marche,af.description code_isin,ho.quantite quantite ,DECODE (ho.poste,'AOBL', ho.montant_reglement,'VOBL', ho.montant_reglement,'SBB_OBL', ho.montant_reglement,'BSB_OBL', ho.montant_reglement,'SBB_OBL', ho.montant_reglement,'FSBB_OBL', round(ho.montant_reglement- ((ho.negocie_3 / 1.10) * 0.10),2),'FBSB_OBL',round( ho.montant_reglement- ((ho.negocie_3 / 1.10) * 0.10),2)) montant_net,cf.code code_affilie,'O','N',ho.num_operation,'N' ,'N','N',ho.contrepartie from op.histo_operation ho,op.affilie_code af ,op.operation_poste po,op.code_affilie cf where poste in ('AOBL','VOBL','SBB_OBL','BSB_OBL','FSBB_OBL','FBSB_OBL') and groupe_1 is not null and  groupe_1 not in('CDG') and statut in ('V','P','U') and ho.poste=po.code and af.attribut='XX' and af.code_ref =ho.titre and cf.client=ho.groupe_1 and date_valeur=:date_operation and not exists (select 1 from op.spec_gregre gr where gr.num_operation=ho.num_operation))
    java.sql.SQLException: ORA-01008: Toutes les variables ne sont pas liées
     
            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
            at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
            at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
            at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
            at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
            at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
            at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
            at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
            at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:796)
            at stagejava.Connect.miseajour(Connect.java:133)
            at stagejava.main.main(main.java:104)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] select from ,if exists, insert into
    Par casper77 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/05/2011, 19h17
  2. insert into table values/ insert into table select
    Par aaronw dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/05/2005, 15h14
  3. insert into from select ?
    Par axel584 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/01/2005, 18h10
  4. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

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