Simplement en essayant de récupérer un curseur pour les identifiants que je spécifie.L'utilisation d'un type de table Oracle dans la clause IN - compile échoue
CREATE OR REPLACE PACKAGE some_package AS TYPE t_cursor IS REF CURSOR; TYPE t_id_table IS TABLE OF NVARCHAR(38) INDEX BY PLS_INTEGER; PROCEDURE someentity_select( p_ids IN t_id_table, p_results OUT t_cursor); END; CREATE OR REPLACE PACKAGE BODY some_package AS PROCEDURE someentity_select( p_ids IN t_guid_table, p_results OUT t_cursor) IS BEGIN OPEN p_results FOR SELECT * FROM someschema.someentity WHERE id IN (SELECT column_value FROM TABLE(p_ids)); - fails here END; END;
Note: someschema.someentity.id est un NVARCHAR2 (38)
PL/SQL: ORA-00382: l'expression est de type incorrect
PL/SQL: ORA-22905: ne peut pas accéder à des lignes à partir d'un élément de table non imbriqué
Où est-ce que je me trompe?
Merci .. mais maintenant il montre ORA-12714: jeu de caractères national invalide spécifié sur cette ligne .. beaucoup plus proche si. –
Vous voudrez peut-être poster une autre question à ce sujet, car c'est un problème totalement différent et je n'ai aucune idée des problèmes de jeu de caractères nationaux. –