Oracle
 sql >> база данни >  >> RDS >> Oracle

Искам конкретна стойност за търсене във всички колони на всички таблици в oracle 11g

Можете да го направите с една заявка, въпреки че е малко сложна. Тази заявка ще търси във всички колони CHAR и VARCHAR2 в текущата схема за низ '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

Имайте предвид, че това е адаптирана версия на заявката на Laurent Schneider за преброяване на редовете във всяка таблица с една заявка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да архивирате файл в PL/SQL?

  2. Как да използвам глобална временна таблица в процедурата на Oracle?

  3. Изчисляване на клеймото с лятно часово време

  4. Как мога да извърша SELECT DISTINCT за всички полета с изключение на BLOB?

  5. Възможно ли е да се изпълнят множество изрази в една заявка с помощта на DBD::Oracle?