Po prostu próbuję uzyskać kursor z powrotem dla identyfikatorów, które określam.Użycie typu tabeli Oracle w klauzuli IN - kompilacja kończy się niepowodzeniem
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;
Uwaga: someschema.someentity.id jest to NVARCHAR2 (38)
PL/SQL: ORA-00382: wyrażenie jest nieprawidłowego typu
PL/SQL: ORA-22905: nie można uzyskać dostęp do wierszy z niezagnieżdżonego elementu tabeli
Gdzie się mylę?
Dzięki .. ale teraz pokazuje ORA-12714: nieprawidłowy zestaw znaków narodowych określony w tym wierszu .. znacznie bliżej. –
Możesz zadać kolejne pytanie na ten temat, ponieważ jest to zupełnie inny problem i nie mam pojęcia o problemach z zestawem znaków narodowych. –