Passage en paramètre d'un tableau dans un appel de procédure dynamique
Bonjour,
J'aimerais savoir si il est possible d'appeler une procédure dans un EXECUTE IMMEDIATE avec en paramètre un tableau de type varchar2 index by varchar2.
Voici les morceaux de code que j'ai testé :
Premier test :
Création du type dans la spec du package :
Code:
TYPE g_tab_varchar2 IS TABLE OF VARCHAR2(255) INDEX BY VARCHAR2(255);
Création tableau local avec ce type :
Code:
l_tab_str_params g_tab_varchar2;
Mon appel de procédure :
Code:
1 2
| EXECUTE IMMEDIATE 'BEGIN ' || l_va_code_env || '.' || l_va_data_pkg || '.' || l_va_data_proc || '(:v_in); END;'
USING l_tab_str_params; |
Avec ça, j'ai le message d'erreur à la compilation : "Les expressions doivent être de type SQL".
Deuxième test :
J'ai tenté de créer un type stocké de ce style :
Code:
CREATE OR REPLACE TYPE type_tab_varchar2 AS TABLE OF VARCHAR2(255) INDEX BY VARCHAR2(255);
Mais ça ne marche pas, il n'aime pas l'INDEX.
J'ai testé donc de ne pas le mettre (l'INDEX) mais de le placer au niveau de ma procédure comme pour mon l_tab_str_params initialement, dans ce genre là :
Code:
l_tab_str_params type_tab_varchar2 index by varchar2(255);
Mais il n'aime pas non plus.
Auriez-vous une méthode pour exécuter ceci ?
Merci à vous