Oracle
 sql >> база данни >  >> RDS >> Oracle

Защо получавам ORA-00932:непоследователни типове данни:очаквано - получено - когато използвам COLLECT() в подготвен израз?

Най-накрая получих решение на този проблем, благодарение на известно копаене от потребител. Проблемът не беше с контейнера; защо работи без контейнера на изображението на VirtualBox, нямам представа. Не, проблемът беше с COLLECT() . Изглежда, че и двете стойности, които се събират, трябва да бъдат прехвърлени към определен тип, и полученият масив също трябва да бъде преобразуван в предварително дефиниран тип данни за масив. Просто така се случи, че моят код има персонализиран тип масив:

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

Така че мога да накарам заявката да работи чрез кастинг на COLLECT() така:

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. Импортиране на дъмп с параметър SQLFILE, който не връща данните в таблицата

  2. Oracle PL/SQL - Итериране на имена на колони на локално дефинирана таблица

  3. Как да създам таблици, които не са собственост на sys в Oracle?

  4. Извикване на съхранена процедура от java за Oracle тип TABLE

  5. Използване на pl-sql процедура или курсор, за да изберете първите 3 ранга