shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [shell-script] Preciso dar insert automatico no Oracle usando o she


From: Julio Cezar Neves - DISB.O
Subject: RE: [shell-script] Preciso dar insert automatico no Oracle usando o shell
Date: Tue, 18 Dec 2001 19:04:26 -0300

Olá Pedro,
Se eu entendi o seu problema (vc não especificou o que era $DADO), a solução
é simples:

cat $DADO |
while read VALUE1 VALUE2
do
        SINTAXE=`echo "INSERT INTO TABELAX VALUES ('VALUE1','VALUE2')"`
done

Obs: 
1 - O while, assim como o comando if testa se a instrução seguinte foi
executada corretamente. A instrução que esta sendo testada pelo while é o
read, que só devolverá um código de erro qdo encontrar um EOF. Desta forma o
arquivo especificado por $DADO será lido da 1ª à última linha.

2 - O comando read lê campos cujos separadores default são o branco, o <TAB>
e o \012 (new-line), desta forma o conteúdo da linha até o 1º separador irá
para VALUE1, do segundo em diante para VALUE2. Para ficar + visual
experimente fazer no prompt:

prompt> read a b
xxxx yyyy tttt
prompt> echo $a
xxxx
prompt> echo $b
yyyy tttt

[ ]s,
Julio
> -----Original Message-----
> From: Pedro Henrique Ponchio [mailto:address@hidden]
> Sent: Tuesday, December 18, 2001 6:36 PM
> To: address@hidden
> Subject: [shell-script] Preciso dar insert automatico no 
> Oracle usando o
> shell
> 
> 
> Estou apanhando pra conseguir colocar num arquivo .sql a sintaxe a
> seguir:
> 
> INSERT INTO TABELAX VALUES ("VALUE1","VALUE2")
> 
> Tem muitos arquivos, todos .txt, com a seguinte forma:
> 
> 55150000        TEXTEIS
> 56070000        CABOS SISAL/JUTA/FIB SINTET (CORDAS)
> 56070000        FIO DE PESCA
> 56080000        REDES PESCA
> 57050000        TAPETES TAPECARIAS CARPETES NE
> 58060000        FITAS ALGODAO/SINTETICAS
> 59030000        TECIDOS IMPREGNADOS,REVESTIDOS C/PLASTICO
> 59070000        TELAS
> 
> Preciso colocar a primeira coluna (VALUE1) e a segunda (VALUE2) dentro
> de tabelas. 
> Estou tentando isso usando:
> 
> #---------------------------------
> LINHAS=`cat $DADO | wc -l | awk '{print $1}'`
> X=0
> until [ "$X" -eq "$LINHAS" ]
> do
> X=`expr $X + 1`
> VALUE1=`sed -n ${X}p $DADO | awk '{print $1}'`
> VALUE2=`sed -n {X}p $DADO | ???? `
> #aqui monta a sintaxe e joga em algum arquivo
> SINTAXE=`echo "INSERT INTO TABELAX VALUES ('VALUE1','VALUE2')"`
> ???
> done
> #---------------------------------
> 
> Não sei como capturar na variável o VALUE2, que pode ter até 255
> caracteres de limite e vários espaços no meio ...
> Se alguém puder me dar alguma direção sobre como fazer ... não conheço
> sed ou awk o suficiente pra ir além ...
> 
> Muito obrigado, 
> Pedro Henrique
> 
> Sair da lista: address@hidden
> Banco Dados:   http://www.egroups.com/group/shell-script 
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em: 
http://br.yahoo.com/info/utos.html 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]