powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Контекстный поиск в базе
4 сообщений из 4, страница 1 из 1
Контекстный поиск в базе
    #36129054
Rust()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в базе DB2 произвести поиск данных по содержимому. Надо найти таблицы, поля, записи, в которых есть вхождение заданной строки.
...
Рейтинг: 0 / 0
Контекстный поиск в базе
    #36129153
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например, выборка данных о таблицах:

Код: plaintext
1.
2.
3.
SELECT TABLEID,RTRIM(TABSCHEMA),RTRIM(TABNAME),COLCOUNT,KEYCOLUMNS
  FROM SYSCAT.TABLES
 ORDER BY TABSCHEMA,TABNAME

Смотрите схему SYSCAT.

Можно посмотреть здесь
...
Рейтинг: 0 / 0
Контекстный поиск в базе
    #36135572
Tshind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
исходя из предложенного решения в книге стр 342, 347 DB2 9 Cookbook Graeme Birchall
можно создать
#DELIMITER "@";

CREATE PROCEDURE "RETURN_VARCHAR"
(IN "IN_STMT" VARCHAR(4000),
OUT "OUT_VAL" VARCHAR(4000)
)
LANGUAGE SQL
NOT DETERMINISTIC
CALLED ON NULL INPUT
NO EXTERNAL ACTION
OLD SAVEPOINT LEVEL
READS SQL DATA
INHERIT SPECIAL REGISTERS
BEGIN
DECLARE c1 CURSOR FOR s1;
PREPARE s1 FROM in_stmt;
OPEN c1;
FETCH c1 INTO out_val;
CLOSE c1;
RETURN;
END@


CREATE FUNCTION "RETURN_VARCHAR"
("IN_STMT" VARCHAR(4000)
)
RETURNS VARCHAR(4000)
LANGUAGE SQL
NOT DETERMINISTIC
READS SQL DATA
STATIC DISPATCH
CALLED ON NULL INPUT
NO EXTERNAL ACTION
INHERIT SPECIAL REGISTERS
BEGIN ATOMIC
DECLARE out_val VARCHAR(4000);
CALL return_VARCHAR (in_stmt,out_val);
RETURN out_val;
END@

#DELIMITER RESTORE@

а затем выполнить select, где по всей БД выбираются таблицы с
колонкой FLATADDR, длиной 120, содержащей контекст %ИЗОБРЕТАТЕЛЕЙ%

SELECT CHAR(tab.tabname,15) AS tabname
,CHAR(tab.tabschema,15) AS tabschema
,CHAR(col.colname,10) AS colname
,CHAR(COALESCE(return_VARCHAR(
' SELECT '||col.colname ||
' FROM ' || tab.tabschema || '.' || tab.tabname ||
' WHERE ' || col.colname || ' LIKE ''%%ИЗОБРЕТАТЕЛЕЙ%%''' ||
' WITH UR'
),'N'),120) AS has_dept
FROM syscat.columns col
,syscat.tables tab
WHERE col.colname IN ('FLATADDR')
AND col.tabschema = tab.tabschema
AND col.tabname = tab.tabname
AND col.length = 120
AND tab.type = 'T'
FOR FETCH ONLY
WITH UR;
...
Рейтинг: 0 / 0
Контекстный поиск в базе
    #36189641
Фотография dvska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть положительный опыт в использовании
http://www.sphinxsearch.com/ (Sphinx, free open-source SQL full-text search engine)

Про встроенные возможности DB2 знаю только теоретически, см.
http://www.ist.temple.edu/~vucetic/cis595spring2003/sudeshna.ppt
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Контекстный поиск в базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]