Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle Error niespójne typy danych:oczekiwany CHAR ma LONG

Twój problem polega na tym, że TEXT jest typu LONG - chociaż Oracle dawno, dawno temu wycofało ten typ, nadal używają go we własnych widokach :-(

Aby przekonwertować LONG na (przeszukiwalny) CLOB, możesz użyć TO_LOB() funkcja (patrz dokumentacja Oracle dotycząca TO_LOB() .

Niestety nie działa to w przypadku prostego SELECT sprawozdania. Musisz utworzyć tabelę pośredniczącą:

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

Następnie możesz wyszukiwać za pomocą tej tabeli:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dołączyć pliki jar do procedury składowanej Java w Oracle?

  2. Plan wykonania SQL procedury składowanej

  3. Oracle DB prosty SELECT, gdzie kolejność kolumn ma znaczenie

  4. Składnia Oracle SQL:cytowany identyfikator

  5. Zapytanie o usunięcie Oracle zajmuje zbyt dużo czasu