Function d'incrément automatique avec update de table
Bonjour,
J'ai une table avec 2 champs : Annee & compteur
Je souhaite disposer d'une fonction qui en fonction de l'année passée en paramètre :
- incrémente le "compteur" de l'enregistrement correspondant à l'année passée en paramètre
- renvoi la valeur du compteur
Je pratique un peu SQL+ mais je suis tout de même novice donc merci d'avance pour votre aide et votre compréhension.
BigFellow
Merci c'est presque bon...
J'ai fait cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
SQL> desc wkfl_compteur
Nom NULL ? Type
----------------------------------------- -------- ----------------------------
IDENTIFIANT NOT NULL NUMBER(10)
ANNEE NOT NULL NVARCHAR2(10)
SQL> select * from wkfl_compteur;
IDENTIFIANT ANNEE
----------- ----------
2 2008
1 2009
2 2010
1 2011
1 2012
1 2013
1 2014
1 2015
8 ligne(s) sélectionnée(s).
SQL> CREATE OR REPLACE FUNCTION F_COMPTEUR (p_annee IN NVARCHAR2)
2 RETURN NUMBER IS
3 v_compteur NUMBER;
4 BEGIN
5 UPDATE wkfl_compteur
6 SET IDENTIFIANT = IDENTIFIANT + 1
7 WHERE ANNEE like p_annee
8 RETURNING IDENTIFIANT INTO v_compteur;
9 RETURN v_compteur;
10 END;
11 /
Fonction créée.
SQL> select F_Compteur('2008') from DUAL;
select F_Compteur('2008') from DUAL
*
ERREUR à la ligne 1 :
ORA-14551: impossible d'effectuer une opération DML dans une interrogation
ORA-06512: à "IEDOM.F_COMPTEUR", ligne 5 |
Mais j'ai toujours une erreur et je ne sais pas comment l'interpréter :-(
Merci d'avance pour votre aide.
BigFellow