2009-02-14 10 views

risposta

3

Tutti i metadati sono contenuti nelle tabelle del catalogo DB2 nello "schema" SYSIBM. Varia per il prodotto mainframe DB2/z e il prodotto distribuito DB2/LUW ma si avvicina sempre di più ad ogni versione.

IBM posiziona comodamente tutti i loro manuali sul sito publib a cui il mondo può accedere. La mia area di competenza, DB2/z, ha le pagine che vuoi here.

Ci sono un certo numero di tavoli lì che è necessario fare riferimento a:

SYSTABLES  for table information. 
SYSINDEXES \ 
SYSINDEXPART + for index information. 
SYSKEYS  /
SYSCOLUMNS  for column information. 

L'elenco di tutti i centri di informazione è here cui si dovrebbe puntare alla versione di DB2/LUW se è la vostra area di interesse .

+0

Hi Pax, può inquadrare la risposta di cui sopra nella query, allora sarà molto utile per me .. TIA –

+0

sto copiando tutto il mio tabelle a un altro tablespace da tabelle di esportazione e importazione con l'opzione di creazione con i nomi diffrenti . Ho notato che l'indice primario è creato. Tuttavia, i miei indici secondari non sono creati perché esisteva già lo stesso nome indice. Ora sto cercando di ottenere istruzioni ddl per quegli indici . Qualunque corpo mi dia una dichiarazione db2look a , ottieni solo le dichiarazioni ddl dell'indice per questo database. Grazie in anticipo –

4

sintassi per descrivere tavolo

db2 describe table <tablename> 

o Per tutti i dettagli della tabella

select * from syscat.tables 

o Per tutti i dettagli della tabella

select * from sysibm.tables 
10

Oltre a descrivere tabella, è possibile utilizzare il sottostante

DESCRIBE INDEXES FOR TABLE *tablename* SHOW DETAIL 

per ottenere informazioni sugli indici della tabella.

Il dettaglio più completo di una tabella su DB2 per Linux, UNIX e Windows può essere ottenuto dall'utilità db2look, che può essere eseguita da un client remoto o direttamente sul server DB2 come utente locale. Lo strumento produce il DDL e altre informazioni necessarie per simulare le tabelle e i relativi dati statistici. I documenti per db2look in DB2 9.5 sono here.

Il db2look seguente comando connettersi al database SalesDB ed ottenere comandi necessari per ricreare la tabella ORDINI

db2look -d SALESDB -e -t ORDERS 
1

Descrivi la sintassi tavolo

describe table schemeaName.TableName 
+0

Ciao Rajesh .. conosci qualche query che fornirà l'istruzione--ddl solo per la tabella/indice? TIA –

8

So che questa è una vecchia questione del DDL, ma questo farà il lavoro.

SELECT colname, typename, length, scale, default, nulls 
    FROM syscat.columns 
WHERE tabname = '<table name>' 
    AND tabschema = '<schema name>' 
ORDER BY colno 
+0

Ciao Todd .. Conosci una query che fornirà l'istruzione-- ddl solo per la tabella/indice? TIA –

+0

A quali versioni di DB2 si applica? Sto lavorando con 7.2 e non sembra funzionare. –

+1

Apparentemente per le versioni precedenti, è necessario utilizzare sysibm piuttosto che syscat. –

2

Fare clic con il tavolo in Centro di controllo DB2 e ha scelto Generate DDL ... Che vi darà tutto il necessario e molto altro ancora.

1

provare quanto segue:

DESCRIBE SELECT * FROM TABLE_name 
1

è possibile utilizzare il comando qui sotto per vedere le caratteristiche complete di DB

db2look -d <DB NAme>-u walid -e -o 

è possibile utilizzare il seguente comando per vedere le caratteristiche complete di Schema

db2look -d <DB NAme> -u walid -z <Schema Name> -e -o 

è possibile utilizzare il comando qui sotto per vedere le caratteristiche complete di ta ble

db2look -d <DB NAme> -u walid -z <Schema Name> -t <Table Name>-e -o 

È inoltre possibile visitare il link sottostante per maggiori dettagli. https://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.admin.doc%2Fdoc%2Fr0002051.htm

+1

Per controllare gli indici sulla tabella usa il comando seguente, descrivi gli indici per la tabella schemeaName.TableName –

+1

Per controllare i dettagli degli indici sulla tabella usa il comando seguente, descrivi gli indici per la tabella schemeaName.TableName mostra il dettaglio –

4

db2look -d <nome_db> -e -z <schema_name> -t nome_tabella < > -i <nome_utente> -w < la password >> <file_name> sql

Per ulteriori informazioni, fare riferimento sotto:

db2look [-h] 

    -d: Database Name: This must be specified 

    -e: Extract DDL file needed to duplicate database 
    -xs: Export XSR objects and generate a script containing DDL statements 
-xdir: Path name: the directory in which XSR objects will be placed 
    -u: Creator ID: If -u and -a are both not specified then $USER will be used 
    -z: Schema name: If -z and -a are both specified then -z will be ignored 
    -t: Generate statistics for the specified tables 
    -tw: Generate DDLs for tables whose names match the pattern criteria (wildcard characters) of the table name 
    -ap: Generate AUDIT USING Statements 
    -wlm: Generate WLM specific DDL Statements 
    -mod: Generate DDL statements for Module 
    -cor: Generate DDL with CREATE OR REPLACE clause 
-wrap: Generates obfuscated versions of DDL statements 
    -h: More detailed help message 
    -o: Redirects the output to the given file name 
    -a: Generate statistics for all creators 
    -m: Run the db2look utility in mimic mode 
     -c: Do not generate COMMIT statements for mimic 
     -r: Do not generate RUNSTATS statements for mimic 
    -l: Generate Database Layout: Database partition groups, Bufferpools and Tablespaces 
    -x: Generate Authorization statements DDL excluding the original definer of the object 
    -xd: Generate Authorization statements DDL including the original definer of the object 
    -f: Extract configuration parameters and environment variables 
    -td: Specifies x to be statement delimiter (default is semicolon(;)) 
    -i: User ID to log on to the server where the database resides 
    -w: Password to log on to the server where the database resides 
+0

Ci sono molte opzioni per generare ddl di particolare tabella db2. Si prega di scegliere i dettagli necessari per la vostra ricerca. – user4105809

0

Mi sono appena imbattuto in questa query per descrivere IBE una tabella in winsql

select NAME,TBNAME,COLTYPE,LENGTH,REMARKS,SCALE from sysibm.syscolumns 
where tbcreator = 'Schema_name' and tbname='Table_name' ; 
0

DB2 Versione 11,0

Columns: 
-------- 
SELECT NAME,COLTYPE,NULLS,LENGTH,SCALE,DEFAULT,DEFAULTVALUE FROM SYSIBM.SYSCOLUMNS where TBcreator ='ME' and TBNAME ='MY_TABLE' ORDER BY COLNO; 

Indexes: 
-------- 
SELECT P.SPACE, K.IXNAME, I.UNIQUERULE, I.CLUSTERING, K.COLNAME, K.COLNO, K.ORDERING 
FROM SYSIBM.SYSINDEXES I 
    JOIN SYSIBM.SYSINDEXPART P 
     ON I.NAME = P.IXNAME 
     AND I.CREATOR = P.IXCREATOR 
    JOIN SYSIBM.SYSKEYS K 
     ON P.IXNAME = K.IXNAME 
     AND P.IXCREATOR = K.IXCREATOR 
WHERE I.TBcreator ='ME' and I.TBNAME ='MY_TABLE' 
ORDER BY K.IXNAME, K.COLSEQ; 
Problemi correlati