2009-06-11 6 views
4

Mes collègues et moi avons plusieurs centaines de procédures stockées SQL reposant sur une base de données DB2/z hébergée (version 8.1). Nous n'avons aucun droit d'administrateur et notre accès à la base de données se fait via des écrans QMF. Les téléchargements sont effectués via la session de terminal 3270 avec la commande TSO FT.DB2 Code SQL pour extraire des procédures stockées

Existe-t-il un moyen simple/efficace d'extraire les définitions/le texte de toutes nos procédures stockées? Je voudrais faire un vidage hebdomadaire que nous gardons sur place dans SVN ou un autre système de contrôle de révision.

Toutes les suggestions seraient grandement appréciées.

Merci
Stephen


Mise à jour - 9 Juillet 2009

Un grand merci pour les suggestions, mais ils ne semblent pas aider dans notre configuration particulière. Je vais revenir à notre vendeur et demander pour plus d'informations. Mettra à jour quand j'apprendrai quelque chose plus loin.

Stephen

Répondre

0

Je pense que db2look devrait être en mesure d'obtenir le DDL pour vous. Selon les docs, la seule chose dont vous avez besoin est le privilège SELECT sur les tables du catalogue système. Je ne connais plus très bien OS/390, donc je ne sais pas comment lancer db2look sur cette plate-forme. J'espère que votre DBA peut vous aider.

4

Sur DB2 z/OS, vous voulez regarder dans les tableaux du catalogue système, principalement SYSIBM.SYSROUTINES, SYSIBM.SYSROUTINES_OPTS et SYSIBM.SYSROUTINES_SRC

1

S'ils ont seulement l'utilisateur final droit sur ce db, Est-ce que ça importe?

du centre d'information pour v9.5 le privilège suivant est nécessaire:

privilège SELECT sur les tables de catalogue système.

Dans certains cas, comme la génération conteneur d'espace de table LDD (qui appelle les API sqlbotcq, sqlbftcq et sqlbctcq), vous aurez besoin une des opérations suivantes:

* sysadm 
* sysctrl 
* sysmaint 
* dbadm 
6

Vous pouvez obtenir le texte de procédure stockée en faisant une

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES; 

Alternativement, vous pouvez choisir de récupérer uniquement les SPs dans votre schéma en faisant une:

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

Si vous décidez de limiter les résultats en ayant une clause where, veuillez noter qu'il s'agit de sensible à la casse et que vous devez spécifier les critères dans CAPS uniquement.

Questions connexes