Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dlaczego otrzymuję ORA-00932:niespójne typy danych:oczekiwano - otrzymano - podczas używania COLLECT() w przygotowanym oświadczeniu?

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)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ora-00972 identyfikator jest za długi oracle 10g

  2. Podczas otwierania połączenia Oracle obiekt połączenia jest pusty

  3. GROUP BY / zamieszanie funkcji agregujących w SQL

  4. Oracle 10g:Wyodrębnij dane (wybierz) z XML (typ CLOB)

  5. Jak używać sql * plus w skrypcie poleceń systemu Windows do sterowania przepływem?