Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Шерстизатор DB2(когда надо найти значение в базе, но не ясно в какой таблице)  [new]
Андрей Васильевич
Member

Откуда:
Сообщений: 281
Здравствуй народ!
Наверное у многих разработчиков была ситуация когда в чужом приложении отображается информация, но где она хранится в базе не ясно. Документации нет. Всё бы ничего, но база на несколько сотен таблиц, а в каждой таблице не один десяток полей. Ко всему этому сделать костыль нужно было ещё позавчера. Давно хотел это сделать. Вот набросал кратенько. Там всего 2 класса. Один отвечает за выборку из БД(из одной функции), а другой за отображение. Естественно работает только под DB2. Библиотеки DB2 надо приложить(можно сразу в Shers\dist\lib). Ничего не оптимизировано(а там есть простор). Делал быстро, поэтому без разного рода прелестей(только голый JDBC). Тестировал 1 раз. Что мне надо было нашлось. Может кому пригодится.

К сообщению приложен файл (Shers.7z - 29Kb) cкачать
7 ноя 16, 10:21    [19864392]     Ответить | Цитировать Сообщить модератору
 Re: Шерстизатор DB2(когда надо найти значение в базе, но не ясно в какой таблице)  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1005
Спасибо.

BTW На маленьких базах (несколько GB, может пару десятков) с плохо документированной структурой пользовался методом грубой силы:
for tabschema in `db2 -x "select distinct tabschema from syscat.tables where tabschema not like 'SYS%' and type='T'"` ; do
  for tabname in `db2 -x "select tabname from syscat.tables where tabschema='${tabschema}' and type='T'"`; do
    db2 -v "export to ${tabschema}.${tabname}.csv of del  select * from ${tabschema}.${tabname}";
  done;
done
egrep "...." *.csv


Вариант

...
egrep -m 1 "...." *.csv
7 ноя 16, 15:38    [19866186]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить