sql >> Database >  >> RDS >> Oracle

Waarom krijg ik ORA-00932:inconsistente datatypes:verwacht - gekregen - bij gebruik van COLLECT() in een voorbereide instructie?

Eindelijk een oplossing voor dit probleem gekregen, dankzij wat graafwerk door een gebruiker. Het probleem lag niet bij de tijdelijke aanduiding; waarom het werkte zonder de tijdelijke aanduiding op de VirtualBox-afbeelding, ik heb geen idee. Nee, het probleem was met de COLLECT() . Het lijkt erop dat beide waarden die worden verzameld, naar een specifiek type moeten worden gegoten, en de resulterende array moet ook worden gecast naar een vooraf gedefinieerd array-gegevenstype. Toevallig heeft mijn code een aangepast arraytype:

CREATE TYPE sqitch_array AS varray(1024) OF VARCHAR2(512);

Dus ik kan de query laten werken door de COLLECT() . te casten zoals zo:

CAST(COLLECT(CAST(t.tags as VARCHAR2(512))) AS sqitch_array)



  1. Hoe het exacte nummer te zoeken in php

  2. Mysql-tijdzone op Windows 7 niet bijgewerkt

  3. Dubbele unicode-invoerfout op de unieke kolom - mysql

  4. Delete, Truncate of Drop om een ​​tabel in MySQL op te schonen