W końcu udało mi się rozwiązać ten problem, dzięki pewnemu kopaniu przez użytkownika. Problem nie dotyczył symbolu zastępczego; dlaczego zadziałało bez symbolu zastępczego na obrazie VirtualBox, nie mam pojęcia. Nie, problem dotyczył COLLECT()
. Wygląda na to, że obie zbierane wartości muszą być rzutowane na określony typ, i wynikowa tablica również musi być rzutowana na predefiniowany typ danych tablicy. Tak się składa, że mój kod ma niestandardowy typ tablicy:
CREATE TYPE sqitch_array AS varray(1024) OF VARCHAR2(512);
Mogę więc uruchomić zapytanie, rzutując COLLECT()
tak:
CAST(COLLECT(CAST(t.tags as VARCHAR2(512))) AS sqitch_array)