sql >> Database >  >> RDS >> Oracle

Ik wil Zoek een specifieke waarde in alle kolommen van alle tabellen in orakel 11g

Je kunt het doen met een enkele query, hoewel het een beetje ingewikkeld is. Deze zoekopdracht zoekt in alle CHAR- en VARCHAR2-kolommen in het huidige schema naar de tekenreeks '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

Merk op dat dit een aangepaste versie is van de vraag van Laurent Schneider naar tel de rijen in elke tabel met een enkele vraag.




  1. Php mysql database maken als deze niet bestaat

  2. Android-kamer - Hoe sqlite_sequence voor alle tabellen te wissen

  3. mysql-query van een datum, tussen twee datumvelden

  4. php mysql haal variabele gegevens uit de database en bereken