2010-08-27 12 views

Odpowiedz

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

To daje wszystkie tabele z CUR w nich w schemacie SCHEMA.

Aby uzyskać więcej informacji na temat tabeli , patrz: here. Jeśli spojrzysz na okienko nawigacji po lewej stronie, możesz uzyskać wszystkie wspaniałe metadane bazy danych DB2.

Należy zwrócić uwagę, że to łącze dotyczy komputera mainframe DB2/z. DB2/LUW (Linux/UNIX/Windows) ma nieco inne kolumny. Do tego, uważam, że chcesz kolumnę CREATOR.

W każdym przypadku należy sprawdzić dokumentację IBM dla określonego wariantu. Nazwa tabeli prawie na pewno nie zmieni się jednak, więc poszukaj szczegółów SYSIBM.SYSTABLES.

+3

'SQL0206N" OWNER "nie jest poprawny w kontekście, w którym jest używany. SQLSTATE = 42703' –

+6

@Marius, możesz mieć inny schemat w wariancie DB2 - dotyczyło to DB2/z, które lubimy nazywać _real_ DB2 :-) Na przykład w DB2/LUW użyłbyś TWÓRCA. Nie zmienia podstawowej odpowiedzi, która polega na użyciu 'systables'. – paxdiablo

+1

mój zły: używam ** DB2/LUW ** rzeczywiście. –

-1

To powinno działać:

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

Opcja ta ma tę zaletę, że nie jest zależna od wielkości liter. – Brannon

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

Należy spróbować tego:

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

Można również uzyskać nazwy tabel po prostu wpisując listę tabel DB2

+2

To nie prawda. 'LISTA TABELE' daje mi 0 stołów. Natomiast tabela "LIST TABLES SCHEMAX" znajduje się w tabelach 796 tego schematu. Dlatego 'LIST TABLES' niekoniecznie pokazuje wszystkie tabele. – schneiti

6

Korzystanie z komend DB2 (bez SQL) jest możliwe Wykonanie

db2 LIST TABLES FOR ALL 

To pokazuje wszystkie tabele we wszystkich schematach w bazie danych.

ref: show all tables in DB2 using the LIST command

+4

Jest to bardzo przydatne, jeśli nie znasz schematu, którego szukasz, lub chcesz zrzucić listę wszystkich tabel w bazie danych do pliku. tabele "db2" dla wszystkich "> tables.txt" – bonh

+0

Tego właśnie chciałem! Dzięki! –

11

Na moich iSeries muszę uruchomić to polecenie z 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

Nie ma dużej różnicy w różnicy danych.Następnie major jest kolejność kolumn W tabelach list kolumna schematu będzie po tabeli/widoku kolumny W tabelach list Pokaż szczegóły kolumna schematu będzie po typ kolumny

Powiązane problemy