2015-08-11 5 views
0

Я ищу решение для поиска строки/числа в оракуле всех таблиц и столбцов.Как выполнить блок в oracle?

Я проверил онлайн и нашел много решений.

Но когда я выполняю ниже решение в SQL-разработчике SQL, он создает анонимный блок.

Может ли кто-нибудь помочь мне, как использовать ниже решение в Oracle, чтобы получить результаты.

DECLARE 
    match_count integer; 
    v_search_string varchar2(4000) := <<string you want to search for>>; 
BEGIN 
    FOR t IN (SELECT owner, table_name, column_name FROM all_tab_columns) LOOP 
    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; 
    END LOOP; 
END; 
/

Помогите, поскольку я новичок в Oracle.

Спасибо advabce

+0

Я не уверен, что вы подразумеваете под «он создает анонимный блок». Анонимный блок не хранится нигде, поэтому не имеет смысла говорить о «создании» его, как если бы вы создали хранимый объект, например процедуру или функцию. Вы выполняете анонимный блок? Вы видите какие-то результаты? Включили ли вы 'dbms_output' для своей сессии? Вы положили строку, которую вы действительно ищете, в строке «<< строка, которую вы хотите найти >>»? Вы получаете сообщение об ошибке? –

+0

@JustinCave: Спасибо за ответ .. Да, я ввел строку, которую я хочу найти в базе данных. Я просто выполняю это в SQL-окне в SQL-разработчике SQL, и он показывает мне, что анонимный блок создан. Итак, вот мой запрос, как я должен выполнить в SQL-разработчике SQL? –

+0

Что такое сообщение? Вы видите, что «процедура PL/SQL успешно завершена»? Это означает, что анонимный блок был успешно выполнен. Как я уже сказал, анонимные блоки не создаются в том смысле, что такие постоянные объекты, как процедуры и функции. Проблема в том, что вы выполняете анонимный блок, но не видите какой-либо вывод из 'dbms_output'? Если это так, я закрою это как дубликат вопроса, с которым я связан. –

ответ

0

Сначала выполните

Set serveroutput on; 

И затем выполнить свой анонимный блок.

0

Просмотр и вывод СУБД в SQL Developer. В этот момент вы можете увидеть результаты PL/SQL блоков.

Смежные вопросы