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: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.
