* Bonjour, *
j'ai un champ de type varchar, je veux mettre par exemple au début 22/2010 mais il y aura un erreur dans le trigger pre-insert qui incrémente ce champ en sélectionnant le max et ajoute un. S'il y a une idée aide moi Merci
Version imprimable
* Bonjour, *
j'ai un champ de type varchar, je veux mettre par exemple au début 22/2010 mais il y aura un erreur dans le trigger pre-insert qui incrémente ce champ en sélectionnant le max et ajoute un. S'il y a une idée aide moi Merci
Quelle est la partie qui doit être incrémentée ?
Bonjour,
la partie à gauche et je veux que la partie à droite se change selon l'année courante. Merci
Code:
1
2 SELECT SubStr('22/2010',1, InStr('22/2101','/')-1) + 1 || '/' || To_Char(SYSDATE,'YYYY') FROM dual
Bonjour Yerbouti,
j'ai essayé le code suivant :
mais j'ai le message suivant suite à une enregistrement dans la base:Code:
1
2 SELECT SubStr('0/2010',1, InStr('0/2101','/')-1) + 1 || '/' || To_Char(SYSDATE,'YYYY') into :bon_entree.NUMERO_BE FROM bon_entree;
Citation:
FRM-40735:LE DECLENCHEUR PRE-INSERT A DETECTE UNE EXCEPTION ORA-1422 NON TRAITEE.
testez vos ordres SQL sous Sql*plus, Toad ou SqlDeveloper, et vous comprendrez.
Il n'y a aucune clause de filtrage dans votre requête qui doit donc ramenu plusieurs lignes, or SELECT ... INTO ne doit ramener qu'une ligne.
essaie ça dans le pre_insert du block:
Code:
1
2
3
4 SELECT MAX(SUBSTR(col_seq,1, INSTR(col_seq,'/')-1))+1|| '/' || To_Char(SYSDATE,'YYYY') INTO :col_seq FROM tabseq;
Bonjour ,
Comment je peux initialiser la valeur pour chaque année. Par exemple:
on a en fin décembre ce numéro :233/2010
et au début de 2011 on a ce numéro: 1/2011.
Merci pour vos propositions.
Bonjour,
je vous souhaite bonne année 2011.
je veux savoir si quelqu'un a un e solution pour ce problème s'il vous plait c'est très urgent.
J'imagine qu'avant d'incrémenter le numéro, il faut voir si l'année a changé. Puisque votre valeur 233/2010 doit être stockée en base, il faut lire ce dernier enregistrement et vérifier que l'année (les 4 derniers chiffre) est la même. Sinon, il faut réinitialiser la séquance à 1.
Merci pour votre réponse mais comment je peux apporter la dernière enregistrement? (sans utiliser un curseur)
C'est stocké dans votre table. Vous devez trouver un moyen d'interroger le dernier enregistrement de cette table.