Simplemente tratando de recuperar el cursor para los identificadores que especifico.Usando un tipo de tabla de Oracle en la cláusula IN - compilación falla
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 es un NVARCHAR2 (38)
PL/SQL: ORA-00382: la expresión es de tipo incorrecto
PL/SQL: ORA-22905: no se puede acceder a las filas de un elemento de tabla no anidado
¿Dónde me equivoco?
Gracias .. pero ahora muestra ORA-12714: juego de caracteres nacional no válido especificado en esa línea ... mucho más cerca. –
Es posible que desee publicar otra pregunta sobre eso, ya que es un problema totalmente diferente y no tengo ni idea sobre los problemas del conjunto de caracteres nacionales. –