sql >> データベース >  >> RDS >> Oracle

Oracle 11gのすべてのテーブルのすべての列で特定の値を検索したい

    少し複雑ですが、単一のクエリで実行できます。このクエリは、文字列 'JONES' について、現在のスキーマ内のすべての CHAR および VARCHAR2 列を検索します。

    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
    

    これは、Laurent Schneider の すべてのテーブルの行を数える




    1. 関数を使用せずにOracleで日付を検証する

    2. Postgres on Rails致命的:データベースが存在しません

    3. インデックスはMySQLの比較よりも高速になりますか?

    4. MySQL:ストアドプロシージャのIF