LINUX.ORG.RU

Поиск известного значения в базе с неизвестной схемой

 , ,


0

1

Не уверен, что в правильный форум пишу, но мне кажется, что этот наиболее подходящий вопросу.

Есть некоторое проприетарное веб-приложение с большой базой данных на Oracle SQL (PostgreSQL), есть полный доступ к базам на чтение. Существует ли простой и эффективный способ найти таблицу и поле в ней, по известному мне относительно уникальному значению, подсмотренному в интерфейсе? Какая-нибудь специфическая форма запроса, или может быть готовая утилита? Свой велосипед писать не хочется, учитывая ненулевую вероятность существования готового.


Прочитать список схем и обойти все их в цикле с запросом select?

andreykyz ★★
()

Oracle http://stackoverflow.com/questions/3288199/sql-select-for-all-records-that-ma...

SQL> set serveroutput on size unlimited
SQL> declare
  2      dummy varchar2(1);
  3  begin
  4      for r in ( select table_name, column_name from user_tab_cols
  5                 where data_type in ('VARCHAR2', 'CHAR', 'CLOB') )
  6      loop
  7          begin
  8              execute immediate 'select null from '||r.table_name
  9                      ||' where '||r.column_name||' like ''%&search_value%'' '
 10                      ||' and rownum = 1'
 11                 into dummy;
 12              dbms_output.put_line('Found it in >>>'
 13                     ||r.table_name||'.'||r.column_name);
 14          exception
 15              when others then
 16                  -- bad practice ahoy!
 17                  null;
 18          end;
 19      end loop;
 20  end;
 21  /
Enter value for search_value: MAISIE
old   9:                ||' where '||r.column_name||' like ''%&search_value%'' '
new   9:                ||' where '||r.column_name||' like ''%MAISIE%'' '
Found it in >>>T23.NAME

PL/SQL procedure successfully completed.

SQL>
vtVitus ★★★★★
()

sql-инъектцию нашел?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.