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