sql >> Databasteknik >  >> RDS >> Oracle

Varför får jag ORA-00932:inkonsekventa datatyper:förväntade - fick - när jag använder COLLECT() i en förberedd sats?

Äntligen fick jag en lösning på det här problemet, tack vare lite grävande av en användare. Problemet låg inte i platshållaren; varför det fungerade utan platshållaren på VirtualBox-bilden har jag ingen aning om. Nej, problemet var med COLLECT() . Verkar som att båda värdena som samlas in måste gjutas till en specifik typ, och den resulterande arrayen måste också castas till en fördefinierad arraydatatyp. Det råkar vara så att min kod har en anpassad arraytyp:

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

Så jag kan få frågan att fungera genom att casta COLLECT() som så:

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



  1. Anslutningshantering i PostgreSQL:En guide

  2. Hämta hierarki från en tabell som denna

  3. Problem med aktiv postförfrågning och heroku.

  4. Hur man använder Pandas Write_Frame för att exportera resultat till Oracle Database i cx_Oracle