powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Про REBIND
7 сообщений из 7, страница 1 из 1
Про REBIND
    #36035920
alapt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Возникла у меня в программе ошибочка
ERROR [51028] [IBM][DB2/NT] SQL0572N Package "FST4.P5482867" is inoperative. SQLSTATE=51028
Почитал я документацию, нашел информацию про команду REBIND.
После того, как я из командной строки (db2cmd) выполнил команду

rebind package FST4.P5482867

все заработало, причем в SQL (Toad) эта команда не выполнялась. В документации написано, что это какая-то CLP-команда, видимо проблема в этом.
После этого посмотрел я список пакетов и нашел там еще несколько невалидных.

В связи с этим возникли вопросы:

1. Можно ли выполнить CLP команду в SQL коде, и если можно, то как?
2. Можно ли написать процедурy (SP), которая будет проверять схему на наличие инвалидных объектов, и при нахождении таковых приводить их в рабочее состояние?

С DB2 работаю недавно, до этого работал с Oracle, там эта поблема решалась просто:
select'ом выбирались все инвалидные объекты из all_objects, потом для каждого из них делалось
execute immediate 'alter <object> compile';

DB2 Express-C 9.1.
...
Рейтинг: 0 / 0
Про REBIND
    #36035971
Фотография I_love_MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
call sysproc.admin_cmd('blah-blah-blah');
В последнем TOAD rebind работает.
- Абсолют' ный
-посковый робот по MSDN для
- ленивых
...
Рейтинг: 0 / 0
Про REBIND
    #36035987
alapt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
I_love_MSDN,

Так я делал...

call sysproc.admin_cmd('rebind package FST4.P5482867');

Получаю ответ

ERROR [42601] [IBM][DB2/NT] SQL0104N An unexpected token "rebind" was found following "НАЧАЛО-ОПЕРАТОРА". Expected tokens may include: "ADD". SQLSTATE=42601
...
Рейтинг: 0 / 0
Про REBIND
    #36036109
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Из командной строки db2 (db2cw для win), стоя в каком-то каталоге, куда файлы можно писать:
Код: plaintext
1.
2.
3.
db2 connect to mydb ...
db2 -xr rebind.sql "select 'rebind package '||rtrim(pkgschema)||'.'||pkgname from syscat.packages where valid!='Y'"
db2 -f rebind.sql -vz rebind.log
db2 connect reset
...
Рейтинг: 0 / 0
Про REBIND
    #36036132
alapt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

Спасибо, но это решение "из командной строки", а мне хотелось бы запустить rebind невалидных объектов из хранимой процедуры, чтобы при запуске моей программы я просто вызывал бы эту процедуру.
...
Рейтинг: 0 / 0
Про REBIND
    #36036186
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alaptMark Barinstein,

Спасибо, но это решение "из командной строки", а мне хотелось бы запустить rebind невалидных объектов из хранимой процедуры, чтобы при запуске моей программы я просто вызывал бы эту процедуру.
1. Для пересвязывания пакетов хранимых на SQL можно написать процедуру, в которой делается такой запрос:

select rtrim(r.routineschema)||'.'||r.specificname name
from syscat.routinedep r
join syscat.packages p on r.btype='K' and r.bschema=p.pkgschema and r.bname=p.pkgname
where p.valid!='Y';

и для каждой строки вызывается

CALL SYSPROC.REBIND_ROUTINE_PACKAGE('SP', name, 'CONSERVATIVE')

2. Для общего случая можно написать C sp или udf, использующую API sqlarbnd .
...
Рейтинг: 0 / 0
Про REBIND
    #36036292
alapt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

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


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