sql >> Databasteknik >  >> RDS >> Oracle

Oracle-fel inkonsekventa datatyper:förväntad CHAR blev LONG

Ditt problem är att TEXT är av typen LÅNG - även om Oracle avskaffade den här typen för länge, länge sedan, använder de den fortfarande i sina egna åsikter :-(

För att konvertera en LONG till en (sökbar) CLOB, kan du använda TO_LOB() funktion (se Oracle-dokumentation för TO_LOB() .

Tyvärr fungerar detta inte för enkla SELECT uttalanden. Du måste skapa en mellanliggande tabell:

create table search_all_views as 
select  av.owner, av.view_name, to_lob(text) as text_clob
from    ALL_VIEWS av;

Sedan kan du söka med den tabellen:

select * 
from search_all_views
where text_clob like '%rownum%';


  1. Codeigniter aktiv post välj, vänster ansluta, räkna

  2. Varför Optimizern inte använder Buffer Pool Knowledge

  3. begränsa fältets värde med värde från en annan tabell före skrivning

  4. SQL, hur sammanfogar man resultat?