Bonjour,

J'ai écris un petit trigger+ procédure afin d'avoir un historique de modification de champs ... Voici ce que cela donne, seulement j'ai un problème de l'insertion de ma date j'aimerais qu'elle soit plus précise date+heure ce qui me permettrait de faire un order by Madate plus précis!

Voici ce que ça donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
CREATE OR REPLACE PROCEDURE ufd_bkhiccl_on_bkcccl_insert (  p_age IN CHAR
			    , p_cli IN CHAR
			    , p_anva IN CHAR
			    , p_nova IN CHAR
			    , p_lib IN CHAR
			    , p_uti IN CHAR
			    , p_dmo IN DATE
			    , p_hmo IN CHAR
             , p_code IN CHAR)
AS
BEGIN
	IF ( p_code = '105' OR p_code = '4' OR p_code = '101' OR p_code = '104' OR p_code = '106' OR p_code = '107' OR p_code = '108' )
	THEN
		INSERT INTO ufd_bkhiccl
		VALUES ( p_age
		       , p_cli
		       , p_anva
		       , p_nova
		       , p_lib
		       , p_uti
		       , p_dmo
		       , p_hmo
             , p_code);
	END IF;
 
END ufd_bkhiccl_on_bkcccl_insert;
 
CREATE OR REPLACE TRIGGER ufd_bkhiccl
AFTER INSERT ON BKCCL
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
 
    ufd_bkhiccl_on_bkcccl_insert(:new.age, :new.cli, :new.anva, :new.nova,
    				      :new.lib, :new.uti, :new.dmo, :new.hmo, :new.nozone);
 
END;
/
Donc comme vous pouvez le voir aujourd'hui j'ai une zone dmo (date de modif) et hmo (heure de modif). Sauf que comme un naze ma zone hmo est un CHAR ... Donc cette zone va disparaitre ce qui donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
CREATE OR REPLACE PROCEDURE ufd_bkhiccl_on_bkcccl_insert (  p_age IN CHAR
			    , p_cli IN CHAR
			    , p_anva IN CHAR
			    , p_nova IN CHAR
			    , p_lib IN CHAR
			    , p_uti IN CHAR
			    , p_dmo IN DATE
			    , p_hmo IN CHAR
             , p_code IN CHAR)
AS
BEGIN
	IF ( p_code = '105' OR p_code = '4' OR p_code = '101' OR p_code = '104' OR p_code = '106' OR p_code = '107' OR p_code = '108' )
	THEN
		INSERT INTO ufd_bkhiccl
		VALUES ( p_age
		       , p_cli
		       , p_anva
		       , p_nova
		       , p_lib
		       , p_uti
		       , TO_DATE(p_dmo||p_hmo,'DD-MM-YYYY HH24:MI:SS')
             , p_code);
	END IF;

END ufd_bkhiccl_on_bkcccl_insert;

CREATE OR REPLACE TRIGGER ufd_bkhiccl
AFTER INSERT ON BKCCL
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN

    ufd_bkhiccl_on_bkcccl_insert(:new.age, :new.cli, :new.anva, :new.nova,
    				      :new.lib, :new.uti, :new.dmo, :new.hmo, :new.nozone);

END;
/
Sauf que j'ai une erreur que je n'arrive pas à déceler sur le code en gras, oracle me dit parenthèse de droite absente ...

Auriez vous une idée svp?

Merci d'avance.