Oracle
 sql >> Base de données >  >> RDS >> Oracle

Types de données incohérents Oracle Error:CHAR attendu obtenu LONG

Votre problème est que TEXT est de type LONG - bien qu'Oracle ait déconseillé ce type il y a très, très longtemps, ils l'utilisent toujours dans leurs propres vues :-(

Pour convertir un LONG en un CLOB (recherchable), vous pouvez utiliser le TO_LOB() fonction (voir Documentation Oracle pour TO_LOB() .

Malheureusement, cela ne fonctionne pas pour le simple SELECT déclarations. Vous devrez créer une table intermédiaire :

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

Ensuite, vous pouvez effectuer une recherche à l'aide de ce tableau :

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