Como ver a estrutura da tabela DB2
Como ver a estrutura da tabela na base de dados DB2
19 answers
sysibm.syscolumns
Select distinct(name), ColType, Length from Sysibm.syscolumns where tbname = 'employee';
Geralmente é mais fácil de descrever.
DESCRIBE TABLE MYSCHEMA.TABLE
Ou
DESCRIBE INDEXES FOR MYSCHEMA.TABLE SHOW DETAIL
Etc.
Ver a documentação: descrever o comando
Também funciona o seguinte comando:
describe SELECT * FROM table_name;
Onde a instrução select pode ser substituída por qualquer outra instrução select, o que é bastante útil para inserções complexas com select, por exemplo.
Em DB2, indique na linha de comandos db2.
db2 => describe table MyTableName
1.utilizar o quadro de descrição db2
db2 describe table tabschema.tabname
2.usar o DB2 describe output
db2 "describe select * from tabschema.tabname"
3.usar o utilitário db2look
db2look -d dbname -e -t tabname
4.procurar linhas em DB2 syscat
db2 "Select * from syscat.columns wher tabname='' and tabschema =''"
PARA A DESCRIÇÃO DA TABELA NA VERSÃO IBM DB2 10.7 TENTEI ISTO E FUNCIONOU BEM
SELECT NAME,COLTYPE,NULLS,LONGLENGTH FROM SYSIBM.SYSCOLUMNS where TBcreator =SCHEMANAME and TBNAME =TABLENAME;
Php exemplo para iSeries (as400) db2, Sim isto funcionou!
$i5 = db2_connect($database, $user, $password, array("i5_lib"=>"qsys2"));
$querydesc = "select * from qsys2.syscolumns where table_schema = '".$library."' and table_name = '".$table_name."' ";
$result = db2_exec($i5, $querydesc);
Também se quiser listar todas as tabelas com as suas descrições
$query = "select TABLE_NAME, TABLE_TEXT from systables where table_schema = '$library' ";
$result = db2_exec($i5, $query);
Você pode obter os meta-dados da tabela usando esta consulta
SELECT * FROM SYSIBM.COLUMNS WHERE TABLE_NAME = 'ASTPCLTEXT';
Para obter todas as tabelas: (pode querer restringir o esquema ao seu esquema)
select * from syscat.tables
Para obter todas as colunas: (onde o tabname = o_ utilizador)
select * from syscat.columns
Utilize o seguinte para verificar a descrição da tabela para uma única Tabela
DESCRIBE TABLE Schema Name.Table Name
Juntar as tabelas abaixo para verificar a descrição da tabela para uma tabela múltipla, juntar com o id da tabela syscat.mesas e syscat.colunas
Você também pode verificar os detalhes dos índices na tabela usando o comando abaixo descrever os índices da tabela . mostrar os detalhes
Se estiver a usar o Estúdio de dados Aqua, basta escrever seleccionar * do table_ name e em vez de carregar em Executar, carregue em ctrl +D.
Poderá ver a descrição do quadro
Como ver a estrutura da tabela na base de dados db2
Abrir a janela de comandos db2
, ligar ao db2 com o seguinte comando.
> db2 connect to DATABASE_NAME USER USERNAME USING PASSWORD
Assim que se ligar com sucesso, envie o seguinte comando para ver a estrutura da tabela.
> db2 "describe select * from SCHEMA_NAME.TABLE_NAME"
O comando acima irá mostrar a estrutura da tabela db2 em formato tabular.
Nota: testada em DB2 Client 9.7.11
A maneira mais fácil como muitos já mencionaram é fazer uma tabela de descrição
No entanto, também pode obter as mesmas informações + adicionais de
db2> SELECT * SYSCAT.TABLES
db2> SELECT * FROM SYSCAT.COLUMNS
Normalmente uso SYSCAT.Colunas para encontrar as tabelas relacionadas na base de dados onde já conheço o nome da coluna:)
Outra boa maneira se quiser obter o DDL de uma dada tabela ou de toda a base de dados é usar o db2look
# db2look -d *dbname* -t *tablename* > tablestructure.out
Isto vai gerar o".sair " ficheiro para si que irá conter o script DDL da tabela em particular.
# db2look -d *dbname* -e > dbstructure.out
Isto irá gerar o DDL de toda a base de dados como um único ficheiro de script, isto é normalmente usado para replicar a base de dados, "-e" é para indicar que se quer exportar o DDL adequado para recriar exactamente a mesma configuração numa nova base de dados.
Espero que isto possa ajudar alguém à procura de tais respostas.Estou a executar o DB2 / LINUXX8664 10.5.3 e describe select * from schema_name.table_name
funciona para mim.
No entanto, describe table schema_name.table_name
falha com este erro:
SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a
query is an empty table. SQLSTATE=02000
drop view lawmod9t.vdesc
create view lawmod9t.vDesc as select
upper(t.table_cat) as Catalog,
upper(t.table_schem) as Schema,
upper(t.table_name) as table,
t.table_text as tableDesc,
c.system_column_name as colname_short,
c.column_name as colname_long,
c.column_text as coldesc,
c.Type_Name as type,
c.column_Size as size
from sysibm.SQLColumns c
inner join sysibm.sqltables t
on c.table_schem = t.table_schem
and c.table_name = t.table_name
select * from vdesc where table = 'YPPPOPL'
O OP não menciona se este é o DB2/400 a ser discutido, mas descobri que a única maneira de conseguir a estrutura da tabela, incluindo as descrições dos nomes das colunas, era usar o DSPFFD.
DSPFFD FILE(TBNAME) OUTPUT(*OUTFILE) OUTFILE(SOMELIB/TBDESC)
Isto coloca a descrição do TBNAME numa tabela chamada TBDESC na biblioteca SOMELIB. Você pode então questionar isso com:
select * from SOMELIB/TBDESC
Siga estes passos simples:
- Seleccione a janela dos navegadores. Extrai-a (expande-a.
- seleccionar e extrair (expandir) a lista de tabelas.
- Seleccione a tabela necessária e extraia-a.
- Se fizer duplo-click na opção código, abre a estrutura da tabela.