powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как сравнить 2 процедуры в DB2
6 сообщений из 6, страница 1 из 1
как сравнить 2 процедуры в DB2
    #36006813
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Помогите пожалуйста с такой задачей.
Из Perl нужно сравнить 2 процедуры находящиеся в разных схемах.

В идеале хотелось бы в тексте каждой из них найти строку с номером версии.
Можно ли как-то выкачать эту информацию из поля CLOB средствами db2?

Если нет, то можно ли как-то узнать какая длина текста процедуры.

Поделитесь пожалуйста опытом, если кто-либо сталкивался с похожей задачей.

Заранее большое спасибо.
...
Рейтинг: 0 / 0
как сравнить 2 процедуры в DB2
    #36007025
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 7.2 была view SYSPROCEDURES через нее можно было добраться до текста процедур на T-SQL
...
Рейтинг: 0 / 0
как сравнить 2 процедуры в DB2
    #36007074
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
KruИз Perl нужно сравнить 2 процедуры находящиеся в разных схемах.Что значит "сравнить"?
На (не)равенство или чтоб вывод типа утилиты diff?
KruВ идеале хотелось бы в тексте каждой из них найти строку с номером версии.
Можно ли как-то выкачать эту информацию из поля CLOB средствами db2?

Если нет, то можно ли как-то узнать какая длина текста процедуры.Текст SQL процедур находится в поле SYSCAT.ROUTINES .TEXT
С clob работают posstr, locate.
...
Рейтинг: 0 / 0
как сравнить 2 процедуры в DB2
    #36008662
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк,
большое спасибо за подсказку про posstr.

У меня получилось написать выражение которое вытаскивает номер версии присвоенный процедуре в p4.

Код: plaintext
1.
2.
3.
select  substr(cast(r.TEXT as varchar( 20000 )), posstr(r.TEXT,'$Change'),  posstr(r.TEXT,'$File') - posstr(r.TEXT,'$Change') - 3 )
from syscat.routines r
where r.ROUTINENAME = 'PROC_NAME'
and r.ROUTINESCHEMA = 'PROC_SCHEMA'

А есть ли какая-нибудь возможность получить что-то вроде того что возвращает diff?
Например выложить средствами коммандной строки содержимое полей TEXT в файлы, ну и потом их этим же diff и сравнить?

Заранее большое спасибо.

PS: golsa - большое спасибо за отклик. У меня 9я версия, там текст процедуры возвращается в виде clob.
К своему удивлению, я узнал, что его можно простым cast перевести в varchar и потом применять обычные текстовые функции :-)
...
Рейтинг: 0 / 0
как сравнить 2 процедуры в DB2
    #36009622
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KruА есть ли какая-нибудь возможность получить что-то вроде того что вращает diff?
Например выложить средствами коммандной строки содержимое полей TEXT в файлы, ну и потом их этим же diff и сравнить? DB2 Command line processor поддерживает сохранение результата запроса в файл:
Код: plaintext
1.
2.
db2 connect to yourdbname user ... using ...
db2 -xr r1.txt "select text from syscat.routines where ..."
db2 -xr r2.txt ...
...
Рейтинг: 0 / 0
как сравнить 2 процедуры в DB2
    #36011673
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinKruА есть ли какая-нибудь возможность получить что-то вроде того что вращает diff?
Например выложить средствами коммандной строки содержимое полей TEXT в файлы, ну и потом их этим же diff и сравнить? DB2 Command line processor поддерживает сохранение результата запроса в файл:
Код: plaintext
1.
2.
db2 connect to yourdbname user ... using ...
db2 -xr r1.txt "select text from syscat.routines where ..."
db2 -xr r2.txt ...


Огромное спасибо!

Получилось
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / как сравнить 2 процедуры в DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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