DB2 Requête pour récupérer tous les noms de table pour un schéma donné
Je suis à la recherche d'une simple requête pour sélectionner tous les noms de table pour un schéma donné.
Par exemple, notre DB a plus de 100 tableaux et j'ai besoin de trouver une table qui contient la sous-chaîne “CUR”. Je peux utiliser la commande une fois que j'ai toutes les tables.
Vous devez vous connecter pour publier un commentaire.
Cela va vous donner toutes les tables avec
CUR
dans les dans lesSCHEMA
schéma.Voir ici pour plus de détails sur la
SYSIBM.SYSTABLES
table. Si vous avez un coup d'oeil dans le volet de navigation sur la gauche, vous pouvez obtenir toutes sortes de merveilleux DB2 metatdata.Noter que ce lien est pour le mainframe DB2/z. DB2/LUW (Linux/UNIX/Windows) a légèrement différentes colonnes. Pour cela, je crois que vous voulez le
CREATOR
colonne.Dans tous les cas, vous devez examiner les IBM docs pour votre variante spécifique. Le nom de la table presque certainement ne toutefois changer, donc il suffit de regarder
SYSIBM.SYSTABLES
pour plus de détails.SQL0206N "OWNER" is not valid in the context where it is used. SQLSTATE=42703
systables
.Sur mon iSeries j'ai pour exécuter cette commande à partir de iNavigator:
Vous devriez essayer ceci:
À l'aide de la DB2 commandes (pas de SQL) il y a la possibilité d'exécuter
Cette montre toutes les tables dans tous les schémas de la base de données.
ref: afficher toutes les tables dans DB2 à l'aide de la LISTE de commande
db2 "list tables for all" > tables.txt
Pour Db2 pour Linux, Unix et Windows (c'est à dire Db2 LUW) ou pour Db2 Entrepôt utiliser le
SYSCAT.TABLES
affichage catalogue. E. g.Qui est une instruction SQL qui sera de retour tous les standard les tables de tous les schéma qui contient la sous-chaîne
CUR
. À partir d'une base de données Db2 ligne de commande vous pouvez également utiliser un CLP commande par exempledb2 list tables for all | grep CUR
à effet similaireCe page décrit les colonnes de SYSCAT.TABLES y compris les différentes valeurs de la
TYPE
colonne.Autres couramment utilisés catalogue vues comprennent
Dans Db2 LUW il est considéré comme une mauvaise pratique d'utiliser le
SYSIBM
catalogue des tableaux (leSYSCAT
affichages catalogue sélectionnez thier des données à partir d'). Ils sont moins uniformes, autant que les noms de colonnes aller, ne sont pas tout à fait aussi facile à utiliser, ne sont pas documentées et sont plus susceptibles de changer entre les versions.Cette page présente une liste de tous les affichages catalogue Feuille de route pour les affichages catalogue
Pour Db2 pour z/OS, utilisez
SYSIBM.TABLES
qui est décrit ici. E. g.Pour Db2 for i (c'est à dire iSeries aka as/400) utilisation
QSYS2.SYSTABLES
qui est décrit iciPour Serveur DB2 pour VSE et VM utilisation
SYSTEM.SYSCATALOG
qui est décrit ici Le Serveur DB2 pour VSE et de la machine virtuelle de Référence SQLWITH UR
à la fin de votre requête) sur le catalogue de requêtes est généralement une bonne idée pour éviter l'attente sur d'autres applications non validées catalogue des changements.Vous pouvez également obtenir les noms de table en tapant simplement la LISTE des TABLES DB2
LIST TABLES
résultats dans les 0 tableaux pour moi. Alors queLIST TABLES SCHEMAX
résultats dans la 796 tables de ce schéma. Par conséquent,LIST TABLES
ne montrent pas nécessairement toutes les tables.Cela devrait fonctionner:
Il n'y a pas de grande différence dans les données.La différence Majeure est l'ordre des colonnes
Dans la liste des tables du schéma de la colonne sera après la table/colonne de la vue
Dans la liste des tables de montrer les détails de schéma de la colonne après la colonne type
DANS db2warehouse j'ai trouvé que le "propriétaire" n'existe pas, donc je décris le tableau syscat.systables et essayez à l'aide de CRÉATEUR à la place et ça fonctionne.