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

Tìm kiếm tất cả các cột, tất cả các bảng để tìm một giá trị cụ thể

Xem các bình luận:

CLEAR SCREEN
SET VERIFY OFF
ACCEPT val CHAR PROMPT 'What value do you want to search for: '
CLEAR SCREEN;

DECLARE
    match_count                             INTEGER;
    v_search_string                         VARCHAR2(4000) := '&val'; /* this was <<val>> */
BEGIN
    FOR t IN (SELECT owner,
                     table_name,
                     column_name
                FROM all_tab_columns
               WHERE data_type IN ('CHAR',
                                   'VARCHAR2',
                                   'NCHAR',
                                   'NVARCHAR2',
                                   'CLOB',
                                   'NCLOB')) 
    LOOP
        BEGIN
            EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || t.owner || '.' || t.table_name || ' WHERE ' || t.column_name || ' = :1' INTO match_count USING v_search_string;

            IF match_count > 0
            THEN
                DBMS_OUTPUT.put_line(t.owner || '.' || t.table_name || '     ' || t.column_name || ' ' || match_count);
            END IF;
        EXCEPTION
            WHEN OTHERS
            THEN
                DBMS_OUTPUT.put_line('Error encountered trying to read ' || t.column_name || ' from ' || t.owner || '.' || t.table_name);
        END;
    END LOOP; 
END;
/     



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RU hay RUR?

  2. Tại sao rlwrap dội lại những gì tôi nhập từ bàn phím?

  3. Tối ưu hóa khi hợp nhất từ ​​liên kết dữ liệu Oracle

  4. Làm cách nào để lấy thông tin theo dõi cho các biến ràng buộc được chuyển qua OracleParameter trong ODP.NET?

  5. Truy vấn chậm trong Java bởi JDBC nhưng không phải trong các hệ thống khác (TOAD)