Insert avec condition

Résolu
javabdou Messages postés 23 Statut Membre -  
javabdou Messages postés 23 Statut Membre -
Bonjour à toutes et à tous,
j'aimerais faire une insertion dans une table en utilisant une condition.
j'ai essayé ce code:
INSERT
WHEN ([Condition]) THEN
INTO [TableName] ([ColumnName])
SELECT [ColumnName] FROM [TableName];

mais il ne marche pas!!! l'erreur resultante est "ORA-00925: Mot-clé INTO absent"

Est-ce que quelqu'un peut me suggerer une solution pour palier a ce probleme

Merci d'avance
Configuration: Windows XP
Internet Explorer 7.0

15 réponses

  1. zinmes Messages postés 22 Date d'inscription   Statut Membre 50
     
    Bonjour
    le insert il es toujours suivit par into donc tu mets ta condition bien avant le insert into c'est a dire tu met ta condtion when(condition)then insert into...
    bonne chance
    0
  2. djkent1 Messages postés 381 Statut Membre 49
     
    Bonjour,
    Je pense que ce serait mieux comme ça, mais rien du sur

    INSERT INTO [TableName] ([ColumnName])
    WHEN ([Condition]) THEN
    SELECT [ColumnName] FROM [TableName];

    Cordialment,
    0
    1. javabdou Messages postés 23 Statut Membre
       
      Merci pour vos reponse,
      j'ai essayé ce que vous avez suggerer mais aucune des solutions ne marche :s
      en fait j'ai essayé de placer la clause de la conditon un peu partout mais cela n'a rien donné
      0
  3. zinmes Messages postés 22 Date d'inscription   Statut Membre 50
     
    est ce que tu peux envoyer la partie du code exacte que tu utilise
    0
  4. javabdou Messages postés 23 Statut Membre
     
    voila le code
    insert when (ktp_gl_rapp.flag is null ) then
    into ktp_gl_rapp(compteur, date_creation,
    op_finance, montant_db,
    montant_cr, desc_ligne,
    num_compta, flag)
    select ktp_gl_seq.nextval,default_effective_date,
    doc_sequence_value, entered_dr, entered_cr,
    desc_l, to_number(substr(desc_l,length(desc_l)-7,8)),
    null
    from ba_gl_ktp_v

    NB: voici le lien ou j'ai trouvé la syntaxe
    http://psoug.org/reference/insert.html
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. djkent1 Messages postés 381 Statut Membre 49
     
    Tu utilise quoi comme SGBD?
    Je peux peu etre t'aider sur du oracle mais faudra patienter jusqu'à ce soir que je fasse des tests chez moi, enfin si personne ne te réépond d'ici la ( je te le souhaite pas :D )

    Bon courage.
    0
  7. javabdou Messages postés 23 Statut Membre
     
    j'utilise une base de donnée oracle et j'utilise SQL navigator pour faire mes requetes

    quant a la reponse, j'espere avoir une solution des que possible
    et merci pour ton aide djkent1
    0
  8. zinmes Messages postés 22 Date d'inscription   Statut Membre 50
     
    voila la syntaxe de linsertion
    insert into nomtable values('champs1','champs2'...)
    donc il ne faut pas decoupé la requete sinon ca ne vas pas s'esxecuter
    et si tu veux faire la condition tu la met ailleure avant ou apres la requete ca depond de ce que tu veux obtenir
    aussi il faut geré les apostrophes selon les types de champs que tu as sur ta base
    mais je crois que tu dois utiliser une funtion ou une procedure qui te permet de geré ta condition.
    0
  9. javabdou Messages postés 23 Statut Membre
     
    salut zinmes,

    je pense aussi que la seule solution reste l'utilisation d'une procedure. mais le probleme est que l'insertion en question est executée dans un code java. donc les choses se corsent!!!!!

    mais si y'a pas de solution a ca -chose que je ne crois, car tout probleme a une ou plusieurs solutions :) - je vais devoir changer mon algo
    0
  10. djkent1 Messages postés 381 Statut Membre 49
     
    J'ai lus quelques trucs, peu etre que sous la forme:

    INSERT INTO [TableName] ([ColumnName])
    VALUES (SELECT [ColumnName] FROM [TableName] )
    WHEN ([Condition]);

    Mais sa vient d'un post sur mysql alors ...
    0
  11. zinmes Messages postés 22 Date d'inscription   Statut Membre 50
     
    bonne chance et fait nous part de la solution des que tu l'atteins
    0
  12. javabdou Messages postés 23 Statut Membre
     
    cela ne marche pas non plus!!!
    0
  13. djkent1 Messages postés 381 Statut Membre 49
     
    Cette fois sa vient d'un article sur oracle, c'est peu etre mieu:

    INSERT INTO TaTable
    (NomColonne, NomColonne2)
    SELECT AutreColonne AutreColonne2
    FROM AutreTable
    WHERE Condition;
    0
  14. javabdou Messages postés 23 Statut Membre
     
    djkent1, j'ai changé de condition et ca marche. donc syntaxiquement c correcte
    merci beaucoup pour ton aide
    0
  15. djkent1 Messages postés 381 Statut Membre 49
     
    Ah, et bien tant mieu, peux tu montrer la requete final stp?
    Ca pourras toujours etre utile

    Bon courage,
    0
  16. javabdou Messages postés 23 Statut Membre
     
    voila:

    INSERT INTO MaTable(colonne1, colonne2,...)
    SELECT colonne1, colonne2,...
    FROM MaVue
    WHERE condition
    0