2010-08-27 5 views

Répondre

56
select * from sysibm.systables 
where owner = 'SCHEMA' 
and name like '%CUR%' 
and type = 'T'; 

Cela vous donnera toutes les tables avec CUR en eux dans le schéma SCHEMA. Pour plus de détails sur le tableau SYSIBM.SYSTABLES, voir here pour plus de détails. Si vous regardez le volet de navigation à gauche, vous pouvez obtenir toutes sortes de merveilleuses méta-données DB2.

Notez que ce lien est pour le mainframe DB2/z. DB2/LUW (Linux/UNIX/Windows) a des colonnes légèrement différentes. Pour cela, je crois que vous voulez la colonne CREATOR.

Dans tous les cas, vous devez examiner les documents IBM pour votre variante spécifique. Le nom de la table ne sera certainement pas changer cependant, il suffit de rechercher SYSIBM.SYSTABLES pour les détails.

+3

'SQL0206N" OWNER "n'est pas valide dans le contexte où il est utilisé. SQLSTATE = 42703' –

+6

@Marius, vous pouvez avoir un schéma différent dans votre variante DB2 - c'était spécifique à DB2/z, ce que nous appelons le _real_ DB2 :-) Par exemple, dans DB2/LUW, vous utiliseriez CRÉATEUR. Cela ne change pas la réponse sous-jacente, qui consiste à utiliser 'systables'. – paxdiablo

+1

mon mauvais: J'utilise ** DB2/LUW ** en effet. –

-1

Cela devrait fonctionner:

select * from syscat.tables 
25
DB2 LIST TABLES FOR SCHEMA <schema_name> 
+1

cette option a l'avantage d'être insensible à la casse. – Brannon

3
select name from sysibm.systables 
where name like '%ISP%' 
and type = 'T' 
9

Essayez ceci:

select TABNAME from syscat.tables where tabschema = 'yourschemaname'"; 
1

Vous pouvez également obtenir les noms de table en tapant simplement TABLES LIST dans DB2

+2

Ce n'est pas vrai. 'LIST TABLES' donne 0 tables pour moi. Tandis que 'LISTE TABLES SCHEMAX'résiste dans les 796 tables de ce schéma. Par conséquent, "LIST TABLES" ne montre pas nécessairement toutes les tables. – schneiti

6

En utilisant les commandes DB2 (pas de SQL) il y a le possibi lité d'exécution

db2 LIST TABLES FOR ALL 

Ceci affiche toutes les tables de tous les schémas de la base de données.

ref: show all tables in DB2 using the LIST command

+4

Cela est très pratique si vous ne connaissez pas le schéma que vous recherchez, ou si vous souhaitez afficher une liste de toutes les tables de votre base de données dans un fichier. 'db2" liste les tables pour tout "> tables.txt' – bonh

+0

C'est ce que je voulais! Merci! –

11

Sur mon iSeries je dois exécuter cette commande à partir iNavigator:

select * 
from QSYS2.SYSTABLES 
where TABLE_SCHEMA 
like 'SCHEMA_NAME' 
and TYPE = 'T'; 
2
db2 connect to MY_INSTACE_DB with myuser -- connect to db2  
db2 "select TABNAME from syscat.tables where tabschema = 'mySchema' with ur" 
db2 terminate -- end connection 
0
SELECT 
    name 
FROM 
    SYSIBM.SYSTABLES 
WHERE 
    type = 'T' 
    AND 
    creator = 'MySchema' 
    AND 
    name LIKE 'book_%'; 
0

Il n'y a pas de grande différence dans la différence données.Système Major est la colonne ordre Dans les tables de liste, la colonne du schéma sera placée après la colonne table/vue Dans les tables de liste, afficher les détails La colonne de schéma sera après le type de colonne

Questions connexes