Est-il possible d'utiliser une variable de type LONG dans un Trigger.
Si non exist-il un contournement ?
Merci beaucoup.
Version imprimable
Est-il possible d'utiliser une variable de type LONG dans un Trigger.
Si non exist-il un contournement ?
Merci beaucoup.
Sur un plan de vue purement technique
en 10G
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 1 CREATE OR REPLACE TRIGGER long_trig 2 BEFORE UPDATE 3 ON emp 4 DECLARE 5 vMsg long := 'UPDATE EMP with variable LONG'; 6 BEGIN 7 dbms_output.put_line(vMsg); 8* END statement_level; 9 / Trigger created. INSERT INTO emp (empno,ename) VALUES (1234,'TITI'); 1 row created. UPDATE emp SET ename = 'GROS MINET' where ename='TITI'; UPDATE EMP with variable LONG 1 row updated.
la reponse est oui
Sur d'autres plans....
:king:
Qu'est ce qui t'a motivé a poser la question?
J'ai jamais testé mais j'ai toujours cru que c'etait impossible.
http://download.oracle.com/docs/cd/B...tr.htm#1006228 (dans la section ''Trigger Restrictions on LONG and LONG RAW Datatypes'')
Bonjour,
La raison de cette question est la suivante :
Dans un LONG je récupère une chaine en HEXA que je dois convertir en ASCII avant de l'enregistrer dans la table. Et je comptai faire ce traitement dans un trigger.
Voila
A+
J'aimerai bien comprendre... 8O
Si j'ai bonne mémoire un trigger est lui même stocké dans un LONG, alors comment se fait il qu'il soit possible de declarer un LONG dans un trigger?
Celà marche, dans l'exemple ci dessus, peut être parce que le corps du trigger n'est pas conséquent? peut être la variable LONG "vMsg" de l'exemple est vu pas le système comme un varchar2 ou je ne sais trop quoi? 8O
Un expert peut il m'éclairer svp!!!
les type LONG est utilisé pour les données non structurées: images bin, documents et sont fournis a des fin de compatibilité descendates
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 CREATE OR REPLACE TRIGGER SCOTT.long_trig BEFORE UPDATE ON SCOTT.EMP DECLARE vMsg long := 'UPDATE EMP with variable LONG sfdfgfgggggggggggggggggggggg $ fggggggggggggggggggggggggggggggggggg sfdsfdgsdfgsdfg fsdgdfgsdfgfdg fdgdfsgsdfgdfgdfg dfgdfsgdfgdfg fgdfgdfgd dfgdfgdfg fgdfgdfg fgdfg ::;$^ppkopjkojopjojpj dfgdfgk fdgg ertert dfgdfgdfgfh ................ d gf fdgdfg gfsdfg sfgdfg 1231212313212312'; BEGIN put_buffer(vMsg); END statement_level; /
1 row updated.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 UPDATE emp SET ename = 'TOTI' WHERE ename='TOTO'; UPDATE EMP with variable LONG sfdfgfgggggggggggggggggggggg $ fggggggggggggggggggggggggggggggggggg sfdsfdgsdfgsdfg fsdgdfgsdfgfdg fdgdfsgsdfgdfgdfg dfgdfsgdfgdfg fgdfgdfgd dfgdfgdfg fgdfgdfg fgdfg ::;$^p"pkopjkojopjojpj d fgdfgk ---------------- fdgg ertert dfgdfgdfgfh ................ d gf fdgdfg gfsdfg sfgdfg 1231212313212312
peut etre que tu as juste besoin d'une fonction
http://www.psoug.org/reference/convert_func.html
au lieu d'utiliser un trigger