sql >> Databáze >  >> RDS >> Oracle

Proč dostanu ORA-00932:nekonzistentní datové typy:očekávané - mám - při použití COLLECT() v připraveném příkazu?

Konečně došlo k řešení tohoto problému díky nějakému kopání uživatelem. Problém nebyl se zástupným symbolem; proč to fungovalo bez zástupného symbolu na obrázku VirtualBox netuším. Ne, problém byl s COLLECT() . Zdá se, že obě shromažďované hodnoty je třeba přetypovat na konkrétní typ a výsledné pole je také potřeba přetypovat na předdefinovaný datový typ pole. Náhodou má můj kód vlastní typ pole:

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

Takže jsem schopen uvést dotaz do práce přetypováním COLLECT() takhle:

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



  1. Zabalte některé vstupy do zaškrtávacího políčka a odešlete do databáze

  2. Klasické volání ASP Oracle uložené procedury s ovladačem OraOleadb

  3. Automaticky odstranit řádek dat s vypršenou platností v MySQL

  4. PostgreSQL dotaz s 'ANY' nefunguje