Bonjour,
Je voudrais passer de ceci :
à cela :
Lorsque le SNOMJOB est > 6 caractères -> on y met que les 3 premiers caractères dans Trigramme
Lorsque le SNOMJOB est <= 6 caractères -> on y met que les 2 premiers caractères dans Trigramme
Pour le moment j'ai :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT SUBSTR(SNOMJOB,1,3) FROM TBL_FRONT_BBP WHERE LENGTH(SNOMJOB) > 6 SELECT SUBSTR(SNOMJOB,1,2) FROM TBL_FRONT_BBP WHERE LENGTH(SNOMJOB) <= 6
et j'ai bien une liste avec les 3 ou 2 premiers chars en fonction de la taille
sauf qu'il faut que j'insère sa dans la colonne TRIGRAMME
Pour modifier mes données je sais qu'il me faudra faire un Update, donc je m'y suis mis aussitôt :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE TBL_FRONT_BBP set SNOMJOB=(SELECT SUBSTR(SNOMJOB,1,3) FROM TBL_FRONT_BBP WHERE LENGTH(SNOMJOB) > 6)
Mais j'obtient une erreur :
Je pense que pour remédier au problème il me faudrait faire une boucle, parcourir lignes par lignes la colonne :Erreur SQL : ORA-01427: sous-requête ramenant un enregistrement de plus d'une ligne
01427. 00000 - "single-row subquery returns more than one row"
boucle qui parcourt lignes par lignes (getline)
si (taille job <= 6)
alors on sectionne les 2 premiers caractères avec substr et on le met dans colonne TRIGRAMME
si condition est vraie on change de ligne
sinon
alors on sectionne les 3 premiers caractères avec substr et on le met dans colonne TRIGRAMME
si condition est vraie on change de ligne
fin de la boucle
voilà, je compte sur votre aide
à vrai dire je débute en SQL et j'aimerai vraiment progresser sur ce langage
Merci
Partager