-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Olá,

Estou com uma zica aqui, e não estou enxergando uma maneira legal de fazer.

Tenho o arquivo de dados e tenho que gerar a saída SQL, que sera
importada pelo psql:

[EMAIL PROTECTED]:~/bd$ cat dados
Tabela: Fim
1 | 06447-001
2 | 06447-002
3 | 06447-003
4 | 06447-004
5 | 06447-005
Tabela: Inicio
1 | 06447-001
2 | 06447-002
3 | 06447-003
4 | 06447-004
5 | 06447-005
Tabela: Quadra
1 | 06447-001
2 | 06447-002
3 | 06447-003
4 | 06447-004
5 | 06447-005
Tabela: Rua
1 | Santos
2 | Sao Jose do Rio Preto
3 | Mauá
4 | Diadema
5 | Carapicuiba
Tabela: Endereco
Adamantina | 06447-001 | 1
Adolfo | 06447-002 | 2
Aguaí | 06447-003 | 3
Águas da Prata | 06447-004 | 4
Águas de Lindóia | 06447-005 | 5
[EMAIL PROTECTED]:~/bd$


A saída deveria ser:

INSERT INTO Fim VALUES (1, 06447-001)
.
.
.
INSERT INTO Endereco VALUES (Águas de Lindóia, 06447-005, 5)

Como podem ver, eu tenho tabelas com 2, 3 e 4 registros, não estou
conseguindo enxergar uma maneira de controlar isto para fazer os insert.

Fazendo separadamente, eu consegui:

- ---------SCRIPT----------
[EMAIL PROTECTED]:~/bd$ cat script.sh

#!/bin/bash

IFS=\|
while read id nome reg;do
echo "INSERT INTO $1 VALUES($id,'$nome','$reg')"
done < $2
- -----------

- ------SCRIPT------------
[EMAIL PROTECTED]:~/bd$ cat gera.sh
#!/bin/bash

TABELA=$(cat arq | grep Tabela | cut -d: -f2)
cat arq | sed '/Tabela/d' > conteudo_tabela

./script.sh $TABELA conteudo_tabela
- ------------------------

- --------RESULTADO DO GERA--------
[EMAIL PROTECTED]:~/bd$ ./gera.sh
INSERT INTO Tab_Dados VALUES(1 ,' Rua Batata ',' 50')
INSERT INTO Tab_Dados VALUES(2 ,' Av Jose Almeida ',' 80')
INSERT INTO Tab_Dados VALUES(3 ,' Rua Joaquim ',' 30')
[EMAIL PROTECTED]:~/bd$

- --------------------

Legal, isto funcionou para a tabela que tenho com 3 registros, porém se
eu executar este mesmo script em outra tabela com 2 registros, ele já
não irá me servir.

Já criei um arquivo com os nomes das tabelas, mas aí não consegui achar
uma forma de inserir os valores sendo que sempre enrosco nos
delimitadores variados.

Poderiam me dar alguma idéia?

Obrigado.


- --

[]'s

Flavio Torres - Administrador de Sistemas
www.digitalinfo.com.br
____________________________________________________________________
PGP/GPG: KeyID 0x7720DBDE
http://keyserver.veridis.com:11371/export?id=3824682698507607006

main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
- --

[]'s

Flavio Torres - Administrador de Sistemas
www.digitalinfo.com.br
____________________________________________________________________
PGP/GPG: KeyID 0x7720DBDE
http://keyserver.veridis.com:11371/export?id=3824682698507607006

main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)

iD8DBQFEcREtNRQApncg294RAnDRAKC12VqdLCnMAf6BtMgV2F6J2QvJIgCcDAo6
WjkBMQbHjKTwXB2E0wIoA1Y=
=H7u5
-----END PGP SIGNATURE-----



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil




Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a