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

Oracle Error tipi di dati incoerenti:il CHAR previsto è diventato LONG

Il tuo problema è che TEXT è di tipo LONG - sebbene Oracle abbia deprecato questo tipo molto, molto tempo fa, lo stanno ancora usando nelle proprie viste :-(

Per convertire un LONG in un CLOB (ricercabile), puoi utilizzare TO_LOB() funzione (vedi Documentazione Oracle per TO_LOB() .

Sfortunatamente, questo non funziona per il semplice SELECT dichiarazioni. Dovrai creare una tabella intermedia:

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

Quindi, puoi cercare utilizzando quella tabella:

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