Raphael bom dia...

Favor verificar a sintaxe, pois o @ não pode existir...  Você esta
rodando no oracle?, acho que este script é do sqlserver.

2009/6/1 raphael Costa <[email protected]>:
>
>
> Boa tarde, esse script sql estou tentando rodar num banco oracle, so que ele
> nao funciona alguem pderia me dizer o que ha de errado?
> obrigado.
>
> ----------------------------------------------------------
> --Declaração das variáveis que serão utilizadas no processo
> ----------------------------------------------------------
> declare @data datetime
> declare @papel char(12)
> declare @cliente char(15)
> declare @corretora char(9)
> declare @QtDevolTomador decimal
> declare @QtEmprTomador decimal
> declare @Quantidade decimal
> declare @QtDispComprada decimal
> ----------------------------------------------------------
> --Colocar aqui a data o papel e o cliente que será corrigido
> ----------------------------------------------------------
> set @data = TO_DATE('01-APR-2009')
> set @papel = 'ALLL11'
> set @cliente = '15283'
> ----------------------------------------------------------
> -------------------------------
> --Início do Script de correção
> -------------------------------
> select @corretora = cd_custodiante_rv
> from cli_bas
> where codcli = @cliente
> select 'Corretora centralizadora do cliente ---> ', @corretora
> ----------------------------------------------------------
> select 1
> from sac_rv_pos_emprestimo
> where clcli_cd = @cliente
> and dt_posicao = @data
> and ( rvcor_cd = @corretora )
> and rvpap_cd = @papel
> ----------------------------------------------------------
> if @@ROWCOUNT > 0 and isnull(@corretora,'') <> '' and
> ltrim(rtrim(@corretora)) <> ''
> BEGIN
> select 'Linha apagada da sac_rv_pos_emprestimo --->', *
> from sac_rv_pos_emprestimo
> where clcli_cd = @cliente
> and dt_posicao = @data
> and ( rvcor_cd <> @corretora )
> and rvpap_cd = @papel
> delete sac_rv_pos_emprestimo
> where clcli_cd = @cliente
> and dt_posicao = @data
> and ( rvcor_cd <> @corretora )
> and rvpap_cd = @papel
> End
> ----------------------------------------------------------
> --|| BUSCA a Quantidade de EMPRESTIMOS TOMADOR ||--
> ---------------------------------------------------
> SELECT @QtEmprTomador = isnull( sum( AA.QT_MOVIMENTADA ),0 )
> FROM SAC_RV_EMPRESTIMO_ACOES AA
> WHERE AA.SG_OPERACAO = 'E'
> AND AA.IC_TIPO_MOVIMENTO = 'T'
> AND AA.CLCLI_CD = @cliente and AA.RVPAP_CD = @papel and AA.DT_MOVIMENTO <=
> @data
> group by AA.CLCLI_CD, AA.RVPAP_CD
> ----------------------------------------------------------
> --|| BUSCA a Quantidade de Devoluções de EMPRESTIMOS TOMADOR ||--
> ----------------------------------------------------------
> Select @QtDevolTomador = isnull( SUM(AA.QT_MOVIMENTADA), 0 )
> FROM SAC_RV_EMPRESTIMO_ACOES AA
> WHERE AA.SG_OPERACAO in ( 'D','T')
> AND AA.IC_TIPO_MOVIMENTO = 'T'
> AND AA.CLCLI_CD = @cliente
> AND AA.RVPAP_CD = @papel
> AND AA.DT_MOVIMENTO <= @data
> group by AA.CLCLI_CD, AA.RVPAP_CD
> ----------------------------------------------------------
> --|| BUSCA a Quantidade TOTAL ||--
> ----------------------------------
> SELECT @Quantidade = isnull( QTDDISP, 0 )
> FROM RV_POS
> WHERE CODCLI = @cliente
> AND DATAPOS = @data
> AND CODPAP = @papel
> ----------------------------------------------------------
> --Calcula a QTD disponível
> --|| Qt Disponivel = Quantidade Total - ( Qt de emprestimos tomadores - Qt
> de Devoluções Tomadoras ) ||--
> ----------------------------------------------------------
> set @QtDispComprada = @Quantidade - ( @QtEmprTomador - @QtDevolTomador )
> ----------------------------------------------------------
> UPDATE SAC_RV_POS_EMPRESTIMO SET
> --SAC_RV_POS_EMPRESTIMO.QT_DISP_COMPRADA = ( SELECT QTDDISP
> -- FROM RV_POS
> -- WHERE CODCLI = SAC_RV_POS_EMPRESTIMO.CLCLI_CD
> -- AND DATAPOS = SAC_RV_POS_EMPRESTIMO.DT_POSICAO
> -- AND CODPAP = SAC_RV_POS_EMPRESTIMO.RVPAP_CD
> -- AND CODCOR = SAC_RV_POS_EMPRESTIMO.RVCOR_CD) ,
> SAC_RV_POS_EMPRESTIMO.QT_DISP_COMPRADA = @QtDispComprada,
>
> SAC_RV_POS_EMPRESTIMO.QT_BLOQ_COMPRADA = (SELECT QTDBLOQ
> FROM RV_POS
> WHERE CODCLI = SAC_RV_POS_EMPRESTIMO.CLCLI_CD
> AND DATAPOS = SAC_RV_POS_EMPRESTIMO.DT_POSICAO
> AND CODPAP = SAC_RV_POS_EMPRESTIMO.RVPAP_CD
> AND CODCOR = SAC_RV_POS_EMPRESTIMO.RVCOR_CD),
> SAC_RV_POS_EMPRESTIMO.VL_CUSTO_MEDIO_TOTAL = (SELECT VL_PRECO_HIST
> FROM SAC_RV_CUSTOS
> WHERE CLCLI_CD = SAC_RV_POS_EMPRESTIMO.CLCLI_CD
> AND DT = SAC_RV_POS_EMPRESTIMO.DT_POSICAO
> AND RVPAP_CD = SAC_RV_POS_EMPRESTIMO.RVPAP_CD),
> SAC_RV_POS_EMPRESTIMO.VL_CUSTO_MEDIO_TOTAL_COR = (SELECT VL_PRECO_CORHIST
> FROM SAC_RV_CUSTOS
> WHERE CLCLI_CD = SAC_RV_POS_EMPRESTIMO.CLCLI_CD
> AND DT = SAC_RV_POS_EMPRESTIMO.DT_POSICAO
> AND RVPAP_CD = SAC_RV_POS_EMPRESTIMO.RVPAP_CD),
> SAC_RV_POS_EMPRESTIMO.QT_DISP_TOMADA = isnull( (SELECT SUM(QT_EMPRESTIMO)
> FROM SAC_RV_EM_POS PP,
> SAC_RV_EMPRESTIMO_ACOES AA
> WHERE PP.ID_MOVIMENTO = AA.ID_MOVIMENTO
> AND AA.RVPAP_CD = SAC_RV_POS_EMPRESTIMO.RVPAP_CD
> AND AA.CLCLI_CD = SAC_RV_POS_EMPRESTIMO.CLCLI_CD
> AND PP.DT_POSICAO = SAC_RV_POS_EMPRESTIMO.DT_POSICAO
> AND AA.SG_OPERACAO = 'E'
> AND AA.IC_TIPO_MOVIMENTO = 'T'), 0 ),
> SAC_RV_POS_EMPRESTIMO.QT_BLOQ_TOMADA = 0,
> SAC_RV_POS_EMPRESTIMO.QT_TOMADA_DEVIDA = isnull( (SELECT SUM(QT_EMPRESTIMO)
> FROM SAC_RV_EM_POS PP,
> SAC_RV_EMPRESTIMO_ACOES AA
> WHERE PP.ID_MOVIMENTO = AA.ID_MOVIMENTO
> AND AA.RVPAP_CD = SAC_RV_POS_EMPRESTIMO.RVPAP_CD
> AND AA.CLCLI_CD = SAC_RV_POS_EMPRESTIMO.CLCLI_CD
> AND PP.DT_POSICAO = SAC_RV_POS_EMPRESTIMO.DT_POSICAO
> AND AA.SG_OPERACAO = 'E'
> AND AA.IC_TIPO_MOVIMENTO = 'T'), 0 ),
> SAC_RV_POS_EMPRESTIMO.QT_VENDIDA = 0
> WHERE CLCLI_CD = @cliente
> AND DT_POSICAO = @data
> AND RVCOR_CD = @corretora
> AND RVPAP_CD = @papel
> ----------------------------------------------------------
>
> ----------------------------------------------------------
> select 'Linha Alterada da sac_rv_pos_emprestimo --->', *
> from sac_rv_pos_emprestimo
> where clcli_cd = @cliente
> and dt_posicao = @data
> AND RVCOR_CD = @corretora
> and rvpap_cd = @papel
>
> --
> Raphael Costa
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 

Responder a