sql >> Database teknologi >  >> RDS >> Oracle

Oracle Fejl inkonsistente datatyper:forventet CHAR blev LONG

Dit problem er, at TEKST er af typen LANG - selvom Oracle har afskrevet denne type for lang, lang tid siden, bruger de den stadig i deres egne synspunkter :-(

For at konvertere en LONG til en (søgbar) CLOB, kan du bruge TO_LOB() funktion (se Oracle-dokumentation for TO_LOB() .

Desværre virker dette ikke for simpel SELECT udsagn. Du skal oprette en mellemliggende tabel:

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

Derefter kan du søge ved hjælp af denne tabel:

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


  1. Konvertering af en Postgresql-database fra SQL_ASCII, der indeholder blandede kodningstyper, til UTF-8

  2. PostgreSQL datasammenligningsværktøj

  3. Sådan laver du et tydeligt join med MySQL

  4. Konvertering mislykkedes ved konvertering af varchar-værdien 'min returnerede værdi' til datatypen int