Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT decode(:new.service,'VENTE','V','PIECE','P')||MaSequence.NEXTVAL INTO :NEW.macolonne_PK FROM DUAL;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT decode(:new.service,'VENTE','V','PIECE','P')||MaSequence.NEXTVAL INTO :NEW.macolonne_PK FROM DUAL;
TROP COOL , le code (je veut dire decode)
désole de ne pas avoir trouvé tout seule ,ca a l'aire tellement évident .
Euh.................., sinon avant de mettre le topic résolu.
vous auriez une ptite idée (je sais que j'exagère) sur la possibilité de faire un trigger , relatif a la date:au changement de moi ou d'anné
je pourrais appeler la procédure qui réinitialiser la séquence correspondante a cet identifiant .
exemple au changement d'année : avant P07-815 après P08-001
la procédure étant résolue dans ce topic. je me disait ,si on pouvait l'appeler dans un trigger befor insert OU ..?(sinon je l fait sur forms promis)
PS : j'ai mis une séquences pour chaque type de client ,serait- ce pénalisant en terme de perf ? (ou faut que je mette un index sur la colonne type )?
ce n'est pas un trigger qu'il te faut mais un job, style
PS: lis http://oracle.developpez.com/guide/d...ages/dbms_job/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SQL> set autop on SQL> var jobno number SQL> exec dbms_job.submit(:jobno,'begin execute immediate ''drop sequence s'';execute immediate ''create sequence s'';end;',add_months(trunc(sysdate),1),'add_months(trunc(sysdate),1)') PL/SQL procedure successfully completed. JOBNO ---------- 1 SQL> commit; Commit complete.
merci ,
j'ai aussi lu dans ton lien que ISUBMIT ( permettant de mettre le n° du job genre le tien).
et comme la procédure c'était alter et non drop/create , ça ne change rien?
pourrai je carrément mettre çaDANS LE WHAT? ET MERCI ENCORE HOMIESCREATE PROCEDURE reinit_Masequence
ln$nextval number;
BEGIN
SELECT MaSequence.NEXTVAL
INTO ln$nextval
FROM DUAL;
execute immediate 'alter sequence Masequence increment by -' || ln$nextval ;
SELECT MaSequence.NEXTVAL
INTO ln$nextval
FROM DUAL;
execute immediate 'alter sequence Masequence increment by 1'
END
ps: si sysdate + 1 =demain a minuit alors pourquoi sysdate+ 1 + 9/24 ça serait pas apres demain a 9h (eu lieu de demain)?
salut ,
c'est tip top finalement.
MERCI BAUCOUP
j'ai mis*** begin ma_procedure; end;*** dans le paramètre what
et tout le reste a marché impec
j'ai même testé en changeant la date du system avant d'insérer .RAS
...........................
Désolé d'avoir tardé pour piger
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager