Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tôi muốn tìm kiếm giá trị cụ thể trong tất cả các cột của tất cả các bảng trong oracle 11g

Bạn có thể làm điều đó với một truy vấn duy nhất mặc dù nó hơi phức tạp. Truy vấn này sẽ tìm kiếm tất cả các cột CHAR và VARCHAR2 trong lược đồ hiện tại cho chuỗi '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

Lưu ý rằng đây là phiên bản điều chỉnh của truy vấn Laurent Schneider thành đếm các hàng trong mỗi bảng với một truy vấn duy nhất.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI:Tham chiếu bộ đếm là mục tiêu của một phép gán - PL / SQL

  2. Số thứ tự trong bảng

  3. Các giá trị lặp lại trong một cột

  4. nội dung của tờ khai gói

  5. Oracle di chuyển cột đến vị trí đầu tiên