semplicemente cercando di ottenere un cursore per gli ID specificata.L'utilizzo di un tipo di Oracle Tavolo in IN-clausola - compilazione fallisce
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;
Nota: someschema.someentity.id è un NVARCHAR2 (38)
PL/SQL: ORA-00382: l'espressione è di tipo sbagliato
PL/SQL: ORA-22905: non può accedere alle righe da un elemento tavolo non annidata
Dove sto andando male?
Grazie .. ma ora si vede ORA-12714: set di caratteri nazionali non valido specificato su quella linea .. molto più vicino però. –
Puoi postare un'altra domanda al riguardo, poiché si tratta di un problema completamente diverso e non ho idea dei problemi relativi ai set di caratteri nazionali. –