Bonjour!
Je cherche à réaliser un trigger sur la création d'une table. Il s'agit, lorsqu'une table est créée dans un schéma donné, d'attribuer les droits de SELECT à un autre utilisateur sur la table qui vient d'être créé et de faire un sysnonyme de cette table.
Je sais que les trigger sur ordre DDL sont tout à fait possible, mais je bloque sur la syntaxe.
Voilà le début du code:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE OR REPLACE TRIGGER trigg_montrig AFTER CREATE ON SCHEMA1 DECLARE x user_tables.table_name%TYPE; BEGIN SELECT ora_dict_obj_name INTO x FROM dual; CREATE OR REPLACE SYNONYM SCHEMA2.x FOR SCHEMA1.x; GRANT SELECT ON SCHEMA1.x TO SCHEMA2; END;
Bien entendu, ça ne fonctionne pas sous cette forme. Comment utiliser le contenu de la variable x pour executer le CREATE SYNONYM ou le GRANT?
PS : ma source pour le moment : http://www.psoug.org/reference/ddl_trigger.html
Partager