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 :
Le message d'erreur est celui-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager