sql >> Databáze >  >> RDS >> Oracle

Chci hledat konkrétní hodnotu ve všech sloupcích všech tabulek v oracle 11g

Můžete to udělat jediným dotazem, i když je to trochu spletité. Tento dotaz prohledá všechny sloupce CHAR a VARCHAR2 v aktuálním schématu pro řetězec 'JONES'

select table_name,
       column_name
  from( select table_name,
               column_name,
               to_number(
                 extractvalue(
                   xmltype(
                     dbms_xmlgen.getxml(
                       'select count(*) c from ' || table_name ||
                       ' where to_char(' || column_name || ') = ''JONES'''
                     )
                   ),
                   'ROWSET/ROW/C'
                 )
               ) cnt
          from (select utc.*, rownum
                  from user_tab_columns utc
                 where data_type in ('CHAR', 'VARCHAR2') ) )
 where cnt >= 0

Upozorňujeme, že toto je upravená verze dotazu Laurenta Schneidera na počítat řádky v každé tabulce s jediným dotazem.




  1. Jak převést hodnotu oddělenou čárkami na řádky na serveru SQL

  2. Je možné, aby Oracle sqlldr přijal záznam TNS jako kvalifikátor instance v Oracle 10 a 11?

  3. Počítat dny v časovém období?

  4. Automatické upgrady PostgreSQL clusterů v cloudu s téměř nulovým výpadkem (část II)