Informix: Como obter o conteúdo da tabela e os nomes das colunas usando o DBACCESS?

StackOverflow https://stackoverflow.com/questions/2833288

  •  26-09-2019
  •  | 
  •  

Pergunta

Supondo que eu tenho:

  • Um banco de dados do Informix chamado "my_database"
  • Uma tabela chamada "my_table" com as colunas "col_1", "col_2" e "col_3":

Eu posso extrair o conteúdo da tabela, criando um my_table.sql script como:

unload to "my_table.txt"
select * from my_table;

e invocando o dbaccess da linha de comando:

dbaccess my_database my_table.sql

Isso produzirá o my_table.txt Arquivo com conteúdo como:

value_a1|value_a2|value_a3
value_b1|value_b2|value_b3

Agora, o que tenho que fazer se quiser obter os nomes das colunas no my_table.txt? Curti:

col_1|col_2|col_3
value_a1|value_a2|value_a3
value_b1|value_b2|value_b3
Foi útil?

Solução

Nenhuma das ferramentas padrão do Informix coloca os nomes das colunas na parte superior da saída, como você deseja.

O programa SQLCMD (não o recém -chegado da Microsoft - o original, disponível no IIUG Software Archive) tem a capacidade de fazer isso; use o -H opção para os títulos da coluna (e -T para obter os tipos de coluna).

sqlcmd -U -d my_database -t my_table -HT -o my_table.txt
sqlunload -d my_database -t my_table -HT -o my_table.txt

O SQLCMD também pode executar a saída CSV, se é isso que você precisa (mas - bug - não formate os nomes da coluna ou as linhas de linhas de coluna corretamente).

Outras dicas

Por que você não usa dbschema?

Para obter o esquema de uma tabela (sem parâmetro -t, mostre todo o banco de dados)

dbschema -d [DBName] -t [DBTable] > file.sql

Para obter esquema de um procedimento armazenado

dbschema -d [DBName] -f [SPName] > file.sql

Encontrei uma solução mais fácil. Coloque os cabeçalhos em um arquivo, digamos header.txt (ele conterá uma única linha "col_1|col_2|col_3") Em seguida, para combinar o arquivo de cabeçalho e seu arquivo de saída executado:

cat header.txt my_table.txt > my_table_wth_head.txt
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top