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

Търсене във всички колони, всички таблици за конкретна стойност

Вижте коментарите:

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. Защо възниква грешка ORA-12054 при създаването на този прост пример за материализиран изглед?

  2. Статичен срещу динамичен sql

  3. Извличане на фиксиран брой редове в SQL заявка в Oracle

  4. Булев параметър за съхранена процедура на Oracle

  5. Oracle не може да се актуализира до NULL