Bonjour, après avoir navigué sur le net je ne trouve pas la syntaxe correct en du code que je voudrai faire fonctionner
Quel qu'un peut m'aider?Code:
1
2
3
4
5 IF EXISTS SELECT champ FROM Table Modifer ELSE Créé end IF;
Coordialement
Version imprimable
Bonjour, après avoir navigué sur le net je ne trouve pas la syntaxe correct en du code que je voudrai faire fonctionner
Quel qu'un peut m'aider?Code:
1
2
3
4
5 IF EXISTS SELECT champ FROM Table Modifer ELSE Créé end IF;
Coordialement
Salut !
Pas sûr de savoir ce que tu veux faire, une explication avec des mots pourrait confirmer.
Que veux tu modifier ? La dite table ?
Que veux dire "IF EXISTS SELECT champ FROM TABLE" ? Si un champ de la table contient une valeur que tu veux tester ?
Que veux tu tester ? L'existence d'une ligne répondant à une certaine condition ?
regarde la commande MERGE ;)
Je voudrais à partir d'informations provenant d'une première table modifier les enregistrements d'une seconde si ils existent déjà et les créer dans le cas contraire.
Si je ne suis pas assez claire n'hésitez pas à me le dire.
Dans ce cas, comme l'a dit OraFrance, c'est MERGE qu'il te faut ;)
http://download.oracle.com/docs/cd/B...ments_9016.htm
Bon si vous insistez de faire ça en PL/SQL par vous même alors :Citation:
regarde la commande MERGE
Code:
1
2
3
4
5 Update Table Set col = valeur where cle = valeur_cle; If SQL%RowCount = 0 Then Insert Into Table (cle, col) Values (valeur_cle, valeur); End If;
Je n'aime vraiment pas les explications en schéma et encore moins en anglais x)
Serait-il possible d'avoir un bout de code explicatif ?
Edit : j'ai répondu avant de voir ta réponse mnitu =)
À quoi correspond SQL%RowCount dans votre bout de code ?
ROWCOUNT retourne le nombre de lignes traitées par la commande précédente. Pour les exemples de MERGE, tu n'as qu'à lancer une recherche dans le forum où ça a été démontré à de nombreuses reprises :)
Effectivement, je vous remercie et vous félicite pour vos nombreuses réponses en peu de temps.:D