Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle-Fehler inkonsistente Datentypen:erwartetes CHAR wurde LONG

Ihr Problem ist, dass TEXT vom Typ LONG ist - obwohl Oracle diesen Typ vor langer, langer Zeit abgelehnt hat, verwenden sie ihn immer noch in ihren eigenen Ansichten :-(

Um ein LONG in ein (durchsuchbares) CLOB umzuwandeln, können Sie TO_LOB() verwenden Funktion (siehe Oracle-Dokumentation für TO_LOB() ). .

Leider funktioniert dies nicht für einfaches SELECT Aussagen. Sie müssen eine Zwischentabelle erstellen:

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

Dann können Sie anhand dieser Tabelle suchen:

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