The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Genérico Shell Script para um arquivo Arquivo mak1600 Programação Shell Script e 8 07-26-2008 08:51
script para purgar JP003 Programação Shell Script e 1 07-11-2008 06:42
Arquivo Arquivo Script KeesH Programação Shell Script e 10 06-09-2008 11:11
fazendo um arquivo script jimmyc Programação Shell Script e 1 09-15-2007 04:02
Ler a partir do arquivo ou então purge arquivo. kayarsenal Programação Shell Script e 15 08-10-2006 08:24

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-13-2008
regnumber regnumber is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 9
shell script para arquivo purge

Estou escrevendo um script para Arquivo Purga para a tabela com linhas <1 ano. O script tem que extrair as linhas da tabela e escrever estas linhas extraídas para um arquivo de texto. Em seguida, a partir do arquivo texto, cada linha será lido e suprimidos por meio de eliminar uma consulta por um. Os campos serão definidas por meio da posição.

Para Eg. ZB_RCVBL_TRACKER consiste dos campos como se segue.
NCP, ACCNO, TRANCD, montante, LOB_TIMESTAMP
Após as linhas serão extraídos e escritos em um arquivo de texto. Preciso de ir buscar os campos NCP, ACCNO, TRANCD, LOB_TIMESTAMP a partir do arquivo texto e passar esses valores para a consulta

DELETE FROM ZB_RCVBL_TRACKER onde NCP \u003d? e ACCNO \u003d? e TRANCD \u003d? e LOB_TIMESTAMP \u003d?

Se o SQLCODE é 0, posso avançar furthur.

Alguém pode me ajudar a realizar essa tarefa.

Código:
==================================
#! /bin/ksh
############################
#   AFI Monitor Script
############################

. /db2/uszlad48/sqllib/db2profile
export mondir=/home/bmwdev1/script/krishna
export monlog=$mondir/Error_Report_`date +%Y%m%d`.log

export bakdir=/home/bmwdev1/script/krishna/bkup
export baklog=$bakdir/Error_Report_`date +%Y%m%d`_bkup.log

# connect to DB
#echo "connect to database r2pdev" >>$monlog

# extract the eligible rows from the table
db2 "SELECT * FROM ZB_RCVBL_TRACKER WHERE TIMESTAMP_UPDATED < (SYSDATE  1 YEAR)WITH UR"  >> $monlog
echo "After SQL execution" >> $monlog
==================================


Krishnakanth
  #2 (permalink)  
Old 10-13-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Posts: 2.361

Código:
while read PCN ACCNO TRANCD AMOUNT LOB_TIMESTAMP
do

   db2 "DELETE FROM ZB_RCVBL_TRACKER where PCN = $PCN and \
       ACCNO=$ACCNO and TRANCD = $TRANCD and LOB_TIMESTAMP = $LOB_TIMESTAMP" || break

done < "$FILE"
  #3 (permalink)  
Old 10-14-2008
regnumber regnumber is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 9
Obrigado pela sua resposta Johnson.

Aqui o problema é como ler NCP, ACCNO, TRANCD, montante, LOB_TIMESTAMP a partir de um arquivo de texto. Os dados serão as seguintes, em arquivo de texto.

Citação:

9564587 111222333 AD 563,85 2008 -10-01-00.00.00.000000
9564588 111222334 AE 567,85 2008 -10-02-00.00.00.000000
9564589 111222335 AF 963,85 2008 -10-03-00.00.00.000000
9564590 111222336 AH 566,85 2008 -10-04-00.00.00.000000
Os dados existentes num ficheiro de texto é uma matéria-prima dados. O comprimento de cada campo é fixado comprimento.
É possível fazer como os seguintes.
NCP é 7 byte a partir de 1 .-7.
accno é de 9 a partir de byte 9.-17.
tran_cd é de 2 bytes começando 19-20
montante é de 8 byte a partir de 22 .-29.
LOB_TIMESTAMP é de 26 bytes a partir do 30-55

podemos definir como esta e vai passar os dados. Se assim como definir em shell script?

Poderia você por favor deixe-me saber como proceder furthur.

Krishnakanth
  #4 (permalink)  
Old 10-14-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Posts: 2.361

O que há de errado com o script que postou?
  #5 (permalink)  
Old 10-14-2008
regnumber regnumber is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 9
Johnson,

O script que você tem dado belas obras. Mas no meu caso é um diferente.

Tenho dado a amostra do que estou a trabalhar agora. Deixe-me dar-lhe exatamente o que eu tenho um trabalho atualmente.

Segue-se a dados em um arquivo de texto. (db2 "SELECT TRACKING_NUM, TRACKING_NUM_SUFFIX, ERROR_SRC_CD, MSG_NUM, MSG_ID, MSG_TYP, MSG_TEXT, TIMESTAMP_UPDATED, USER_UPDATED DA ZB_RCBL_ERROR_MSG_MIG COM UR">> $ monlog1)

Citação:
12345 10 E-123 - - - Olá - --
12345 10 E - - - Olá - --
12345 10 A - - - Olá - --
12345 10 T - - - Olá - --
1234 15 - - - - ERRO - --
123456 10 - - - - Erros - --
123456 10 - - - - Erros - --
255.678 200 - - - - ERRORCORRECTION - --
255.678 200 - - - - ERRORCORRECTION - --
1111111111 10 - - - - - - --
7890 10 errormsg 90 78 E ERRO 2008-08-11-06.53.12.924263 R2p
12345 11 eadf j123 10 E esta é emsg 2008-08-11-14.05.11.745265 --
12345 11 eadf j123 10 E esta é emsg 2008-08-12-09.39.38.886385 --
12345 11 eadf j123 10 E esta é emsg 2008-08-12-09.42.21.223536 --
12345 11 eadf j123 10 E esta é emsg 2008-08-12-09.48.57.911702 --
12345 11 eadf j123 10 E esta é emsg 2008-08-12-09.49.59.296360 --
22345 11 erro j123 10 E este é um emsg 2008-08-12-10.08.33.843147 Olá
255679 25 - - - - - - --
BEYJYWG83L 0 R 902 - B Sistema exceção ocorreu, por favor consulte a BMW_EXCEPTION_LOG tabela 2008-09-10-00.41.32.787352
BEYJYXMT4K 0 R 902 - B Sistema exceção ocorreu, por favor consulte a BMW_EXCEPTION_LOG tabela 2008-09-11-19.01.23.878551
BEYEHF93QY 0 R 003 B Não existe na mensagem ZBV_BILL_REJCT_RSN tabela 2008-08-28-16.31.01.881717
BEYJYTT8FQ 0 R 013 B inválido Transaction Código 2008-09-04-17.39.04.005237
BEYJYTT8FQ 0 R 016 B inválido Taxa Código 2008-09-04-17.39.04.008137
BEYJYTT8FQ 0 R 016 B inválido Taxa Código 2008-09-04-17.39.04.011939
BEYJYTT8FQ 0 R 016 B inválido Taxa Código 2008-09-04-17.39.04.012851
BEYJY2SZVL 0 R 003 B Política / Contrato Número de Conta estão pendentes no ZB_MASTER_DATA_LOG 2008-09-16-09.22.29.120192
BEYJY2SXNG 0 R 003 B Política / Contrato Número de Conta estão pendentes no ZB_MASTER_DATA_LOG 2008-09-16-09.19.33.868772
BEYJY2SMS3 0 R 003 B Política / Contrato Número de Conta estão pendentes no ZB_MASTER_DATA_LOG 2008-09-16-08.53.07.872138
BEYJY2SMJD 0 R 003 B Política / Contrato Número de Conta estão pendentes no ZB_MASTER_DATA_LOG 2008-09-16-08.50.17.307262
BEYJY2EG2K 0 R 003 B Política / Contrato Número de Conta estão pendentes no ZB_MASTER_DATA_LOG 2008-09-17-15.56.03.418917
002.211.556 0 R 001 B Idêntica a Receber operação já destacados para esta política. 2008-09-19-01.41.01.454234
002.211.556 0 R 002 B Uma ou mais por apurar errored créditos para a política 2008-09-23-01.36.07.982876
002.211.556 0 R 002 B Uma ou mais por apurar errored créditos para a política 2008-09-23-01.38.44.515880
002.211.556 0 R 001 B Idêntica a Receber operação já destacados para esta política. 2008-09-23-16.32.20.565704
6634583444 0 R 902 - J Sistema exceção ocorreu, por favor consulte a BMW_EXCEPTION_LOG tabela 2008-09-15-12.44.09.383234

Se eu der o seguinte script.

Citação:
enquanto lê TRACKING_NUM TRACKING_NUM_SUFFIX ERROR_SRC_CD MSG_NUM MSG_ID MSG_TYP MSG_TEXT TIMESTAMP_UPDATED USER_UPDATED
fazer

db2 "SELECT TRACKING_NUM, TRACKING_NUM_SUFFIX, ERROR_SRC_CD, MSG_NUM, MSG_ID, MSG_TYP, MSG_TEXT, TIMESTAMP_UPDATED, USER_UPDATED DA ZB_RCBL_ERROR_MSG_MIG ONDE TRACKING_NUM \u003d $ TRACKING_NUM E TRACKING_NUM_SUFFIX \u003d $ TRACKING_NUM_SUFFIX E TIMESTAMP_UPDATED \u003d $ TIMESTAMP_UPDATED COM UR">> $ monlog2

feito < "$ FILE"
O script que você tenha dado que não está a funcionar neste caso. Bacause o valor do campo é como MSG_TEXT "Créditos Idêntica operação já destacados para esta política". 73 bytes.

Por favor, deixe-me saber como proceder furthur.

Krishnakanth
  #6 (permalink)  
Old 10-14-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Posts: 2.361

Por favor, coloque o código ea amostra de dados dentro de [code] tags, não [quote] tags.

Testar o script por ecoando o comando em vez de executar ele.
Código:
echo db2 "SELECT TRACKING_NUM, TRACKING_NUM_SUFFIX, ERROR_SRC_CD, MSG_NUM, MSG_ID, MSG_TYP, MSG_TEXT, TIMESTAMP_UPDATED, USER_UPDATED FROM ZB_RCBL_ERROR_MSG_MIG WHERE TRACKING_NUM = $TRACKING_NUM AND TRACKING_NUM_SUFFIX = $TRACKING_NUM_SUFFIX AND TIMESTAMP_UPDATED = $TIMESTAMP_UPDATED WITH UR"
Certifique-se que a linha que você construiu está correto antes de retirar a echo.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 09:08.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0