Код SQL DB2 для извлечения хранимых процедур

У меня и моих коллег есть несколько сотен хранимых процедур SQL, размещенных в размещенной базе данных DB2/z (версия 8.1). У нас нет прав администратора, и наш доступ к базе данных осуществляется через экраны QMF. Загрузка осуществляется через сеанс терминала 3270 с помощью команды TSO FT.

Есть ли простой/эффективный способ извлечь определения/текст всех наших хранимых процедур?

Я хотел бы делать еженедельный дамп, который мы храним на месте в SVN или какой-либо другой системе контроля версий.

Любые предложения будут ценны.

Спасибо
Стивен


Обновление -- 9 июля 2009 г.

Большое спасибо за предложения, но они, кажется, не помогают в нашей конкретной конфигурации. Я вернусь к нашему поставщику и попрошу у них больше информации. Обновлю, когда узнаю что-нибудь еще.

Стивен


person Stephen Simmons    schedule 11.06.2009    source источник


Ответы (4)


Вы можете получить текст хранимой процедуры, выполнив

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES;

В качестве альтернативы вы можете получить только SP в вашей схеме, выполнив:

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES WHERE SPECIFIC_SCHEMA = 'MYSCHEMA';

Если вы решите ограничить результаты с помощью предложения where, обратите внимание, что оно чувствительно к регистру, и вам нужно указать критерии только в CAPS.

person SO User    schedule 08.07.2009

В DB2 z/OS вам потребуется просмотреть таблицы системного каталога, прежде всего SYSIBM.SYSROUTINES, SYSIBM.SYSROUTINES_OPTS и SYSIBM.SYSROUTINES_SRC.

person Community    schedule 14.06.2009

Если у них есть право только конечного пользователя на эту базу данных, имеет ли это значение?

из информационного центра для версии 9.5 требуется следующая привилегия:

Привилегия SELECT для таблиц системного каталога.

В некоторых случаях, например при создании DDL-контейнера табличного пространства (который вызывает API-интерфейсы sqlbotcq, sqlbftcq и sqlbctcq), вам потребуется одно из следующих действий:

* sysadm
* sysctrl
* sysmaint
* dbadm
person Datalogist    schedule 25.06.2009

Я думаю, что db2look должен получить для вас DDL.

Согласно документам, единственное, что вам нужно, это привилегия SELECT для таблиц системного каталога.

Я больше не очень хорошо знаком с OS/390, поэтому не знаю, как запустить db2look на этой платформе. Надеюсь, ваш администратор базы данных сможет вам помочь.

person Michael Sharek    schedule 11.06.2009