Поиск определенного значения во всех полях во всех таблицах (Oracle)
Я внес некоторые изменения sql-select в приведенный выше код, чтобы sqlselect он работал быстрее, если oracle вы ищете только одного владельца. Вам sql-select просто нужно изменить 3 переменные searching v_owner, v_data_type и v_search_string, чтобы select-statement они соответствовали тому, что sqlselect вы ищете.
SET SERVEROUTPUT ON SIZE 100000
DECLARE
match_count INTEGER;
-- Type the owner of the tables you are looking at
v_owner VARCHAR2(255) :='ENTER_USERNAME_HERE';
-- Type the data type you are look at (in CAPITAL)
-- VARCHAR2, NUMBER, etc.
v_data_type VARCHAR2(255) :='VARCHAR2';
-- Type the string you are looking at
v_search_string VARCHAR2(4000) :='string to search here...';
BEGIN
FOR t IN (SELECT table_name, column_name FROM all_tab_cols where owner=v_owner and data_type = v_data_type) LOOP
EXECUTE IMMEDIATE
'SELECT COUNT(*) FROM '||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.table_name ||' '||t.column_name||' '||match_count );
END IF;
END LOOP;
END;
/
sql
oracle
search
plsql
database-table
2021-12-06T21:55:54+00:00
2022-11-18T17:28:03+00:00
Gnabutel
Вопросы с похожей тематикой, как у вопроса:
Поиск определенного значения во всех полях во всех таблицах (Oracle)
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.