SQL Oracle : trigger pour récupérer le current user - SQL/NoSQL - Programmation
Marsh Posté le 31-05-2006 à 11:54:50
tu devrais faire plutot ta selection dabord:
begin
res = select user from dual;
:New.login := res;
end
Marsh Posté le 02-06-2006 à 15:35:40
et sans accés à DUAL :
:New.login := SYS_CONTEXT('USERENV','CURRENT_USER');
Marsh Posté le 06-06-2006 à 09:52:01
Merci les gars !
En fait, user semble être une variable Oracle. Donc, on peut l'invoquer sans passer par un select ou une variable intermédiaire. En faisant simplement comme j'avais fait au départ.
Le blème, c'est que je n'ai pas d'Oracle pour tester le truc. Je n'ai toujours pas réussi à l'installer chez moi, tellement mon système est vérolé, snif !
Faudra que j'essaye aussi le truc d'orafrance, ça a l'air sympa.
Marsh Posté le 31-05-2006 à 11:39:52
Salut les hommes !
J'ai un devoir de BDD et je voudrais écrire un trigger permettant de récupérer l'utilisateur courant pour le mettre dans un champ de ma table. Pour plus de lisibilité, je vous mets la version "toto inside"... La table table_toto comporte une colonne login que je veux alimenter avec le trigger trigger_toto. Je me suis donc dit que je pouvais récupérer la valeur de la variable user, celle qu'on appelle quand on fait un "select user from dual".
Mais puis-je directement écrire ça ou dois appeler une procédure stockée faisant le select en question ? Je vous mets ma code :
SQL> CREATE OR REPLACE TRIGGER
TRIGGER_TOTO
BEFORE INSERT ON TABLE_TOTO
FOR EACH ROW
BEGIN
:NEW.LOGIN := USER ;
END ;
/
Et il n'y aurait pas un peu trop de points virgule ?
Un gros merci d'avance, je vous salue bien bas,
Estellanara