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]