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] > >
