Code:
1
2
3
4 SELECT decode(:new.service,'VENTE','V','PIECE','P')||MaSequence.NEXTVAL INTO :NEW.macolonne_PK FROM DUAL;
Version imprimable
Code:
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 .:lol:
Euh.................., sinon avant de mettre le topic résolu.:roll:
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):D
Citation:
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:
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 ,:D:D
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 HOMIES:lol:Citation:
CREATE 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
:marteau:Citation:
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 :lol:
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
...........................:king:
Désolé d'avoir tardé pour piger