DDL sur objets d'un schéma à partir d'une proc. stockée appartenant à un autre schéma
Bonjour,
Mon problème est que je n'arrive pas à faire appel à des instructions DDL (avec EXECUTE IMMEDIATE) à partir d'une procédure stockée pour modifier les tables d'un schéma qui est différent du schéma propriétaire de la procédure.
Exemple de code :
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 25 26 27
| CREATE OR REPLACE PROCEDURE USER1.ajout_column (
vtable VARCHAR2,
vzone VARCHAR2,
vtype VARCHAR2
)
IS
table_chg VARCHAR2 (20):= vtable;
zone_add VARCHAR2 (20):= vzone;
type_add VARCHAR2 (20):= vtype;
BEGIN
-- --------------------------------
-- Modification dans le schema USER1
-- --------------------------------
EXECUTE IMMEDIATE 'ALTER TABLE USER1.' || table_chg ||
' ADD (' || zone_add || ' ' || type_add || ')';
-- ---------------------------------
-- Modification dans le schema USER2
-- ---------------------------------
EXECUTE IMMEDIATE 'ALTER TABLE USER2.' || table_chg ||
' ADD (' || zone_add || ' ' || type_add || ')';
END; |
Le message d'erreur est celui-ci :
Code:
1 2 3 4 5 6 7 8
| SQL> execute ajout_column ('MITMAS','TEST1','VARCHAR2(1)');
BEGIN ajout_column ('MITMAS','TEST1','VARCHAR2(1)'); END;
*
ERREUR Ó la ligne 1 :
ORA-00942: Table ou vue inexistante
ORA-06512: Ó "EMUC.AJOUT_COLUMN", ligne 24
ORA-06512: Ó ligne 1 |
Merci de votre aide.