Error: PLS-00225: subprogram or cursor

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
mariogus
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 157
Registrado em: Sex, 30 Nov 2007 1:17 pm
Localização: Porto Alegre - RS

Apresentou esse erro - como pode ser resolvido.

Error: PLS-00225: subprogram or cursor 'I' reference is out of scope
Line: 383
Text: , i.D1_VALINS -- VL_INSS

Error: PL/SQL: ORA-00984: coluna não permitida aqui
Line: 383
Text: , i.D1_VALINS -- VL_INSS


Selecionar tudo

procedure ISEND_NFEITENS_SYNCHRO is

Cursor i is
SELECT *
FROM PROTHEUS.SD1010;

BEGIN 

for item in i
loop

insert into synchro.synitf_idf ( informante_est_codigo
                                 , dof_import_numero
                                 , idf_num
                                 , aliq_difa
                                 , aliq_icms
                                 , aliq_ii
                                 , aliq_ipi
                                 , aliq_iss
                                 , aliq_stf
                                 , aliq_stt
                                 , preço_total
                                 , preço_unitario
                                 , qtd
                                 , subclasse_idf
                                 , vl_ajuste_preço_total
                                 , vl_base_icms
                                 , vl_base_ipi
                                 , vl_base_irrf
                                 , vl_base_iss
                                 , vl_base_stf
                                 , vl_base_stt
                                 , vl_contabil
                                 , vl_difa
                                 , vl_faturado
                                 , vl_fiscal
                                 , vl_icms
                                 , vl_ii
                                 , vl_ipi
                                 , vl_irrf
                                 , vl_isento_icms
                                 , vl_isento_ipi
                                 , vl_iss
                                 , vl_outros_icms
                                 , vl_outros_ipi
                                 , vl_rateio_ajuste_preço
                                 , vl_rateio_frete
                                 , vl_rateio_oda
                                 , vl_rateio_seguro
                                 , vl_stf
                                 , vl_stt
                                 , vl_tributavel_icms
                                 , vl_tributavel_ipi
                                 , vl_tributavel_stf
                                 , vl_tributavel_stt
                                 , vl_tributavel_difa
                                 , aliq_inss
                                 , vl_base_inss
                                 , vl_inss
                                 , vl_aliq_cofins
                                 , vl_aliq_pis
                                 , vl_base_pis
                                 , vl_base_cofins
                                 , vl_imposto_pis
                                 , vl_imposto_cofins
                                 , aliq_pis
                                 , vl_pis
                                 , aliq_cofins
                                 , vl_cofins
                                 , nop_codigo
                                 , ctrl_instrucao
                                 , cfop_codigo
                                 , merc_codigo
                                 , om_codigo
                                 , stc_codigo
                                 , stp_codigo
                                 , entsai_uni_codigo
                                 , nbm_codigo
                                 , vl_outros_abat
                                 , am_codigo
                                 , fin_codigo
                                 , Sta_Codigo
                                 , Stn_Codigo
                                 )
                          values ( 0						                -- informante_est_codigo
                                 , 0          				          -- dof_import_numero
                                 , 0 							              -- l_loop          -- IDF_NUM
                                 , 0                            -- ALIQ_DIFA
                                 , i.D1_PICM            -- ALIQ_ICMS
                                 , 0                            -- ALIQ_II
                                 , i.d1_ipi             -- ALIQ_IPI
                                 , 0                            -- ALIQ_ISS
                                 , 0                            -- ALIQ_STF
                                 , 0                            -- ALIQ_STT
                                 , i.D1_TOTAL           -- preço_TOTAL
                                 , i.D1_VUNIT           -- preço_UNITARIO
                                 , i.D1_QUANT           -- QTD
                                 , 'M'                          -- SUBCLASSE_IDF
                                 , 0                            -- VL_AJUSTE_preço_TOTAL
                                 , i.D1_BASEICM         -- VL_BASE_ICMS
                                 , i.D1_BASEIPI         -- VL_BASE_IPI
                                 , 0                            -- VL_BASE_IRRF
                                 , 0                            -- VL_BASE_ISS
                                 , 0                            -- VL_BASE_STF
                                 , 0                            -- VL_BASE_STT
                                 , 0                            -- VL_CONTABIL
                                 , 0                            -- VL_DIFA
                                 , 0                            -- VL_FATURADO
                                 , 0                            -- VL_FISCAL
                                 , i.D1_VALICM		      -- VL_ICMS
                                 , i.D1_II              -- VL_II
                                 , i.d1.valipi          -- VL_IPI
                                 , 0                            -- VL_IRRF
                                 , 0                      	    -- VL_ISENTO_ICMS
                                 , 0                      	    -- VL_ISENTO_IPI
                                 , 0                            -- VL_ISS
                                 , 0                      	    -- VL_OUTROS_ICMS
                                 , 0                            -- VL_OUTROS_IPI
                                 , 0                            -- VL_RATEIO_AJUSTE_preço
                                 , i.D1_VALFRE          -- VL_RATEIO_FRETE
                                 , 0                            -- VL_RATEIO_ODA
                                 , 0                            -- VL_RATEIO_SEGURO
                                 , 0                            -- VL_STF
                                 , 0                            -- VL_STT
                                 , null                         -- VL_TRIBUTAVEL_ICMS
                                 , 0                            -- VL_TRIBUTAVEL_IPI
                                 , 0           				          -- VL_TRIBUTAVEL_STF
                                 , 0                            -- VL_TRIBUTAVEL_STT
                                 , 0                            -- VL_TRIBUTAVEL_DIFA
                                 , i.D1_ALIQINS		      -- ALIQ_INSS
                                 , 0                            -- VL_BASE_INSS
                                 , i.D1_VALINS          -- VL_INSS

                                 , 0                            -- VL_ALIQ_COFINS
                                 , 0                            -- VL_ALIQ_PIS
                                 , 0                            -- VL_BASE_PIS
                                 , 0                            -- VL_BASE_COFINS
                                 , 0                            -- VL_IMPOSTO_PIS
                                 , 0                            -- VL_IMPOSTO_COFINS
                                 , 0                            -- ALIQ_PIS
                                 , 0                            -- VL_PIS
                                 , 0                            -- ALIQ_COFINS
                                 , 0                            -- VL_COFINS
                                 , null      	                  -- NOP_CODIGO
                                 , 'M'                          -- Ctrl_Instrucao
                                 , null 		                    -- CFOP_CODIGO
                                 , null                         -- merc_codigo
                                 , null                         -- om_codigo
                                 , null 					  	          -- stc_codigo
                                 , null 	                  	  -- stp_codigo
                                 , null                         -- entsai_uni_codigo
                                 , null				                  -- nbm_codigo
                                 , null
                                 , null               		      -- am_codigo
                                 , null                 		    -- fin_codigo
                                 , null                   	    -- sta_codigo
                                 , null                   	    -- stp_codigo
                                 ) ;

   end loop;
   
   COMMIT;
   
  
   end ISEND_NFEITENS_SYNCHRO;
   
Avatar do usuário
Marciel
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 158
Registrado em: Qui, 03 Mai 2007 10:12 am
Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.

i é a referência ao cursor, e não ao registro.

Você deve usar item.<campo> no insert, e não i.<campo>.
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Ou que tal não fazer um cursor for loop slow-by-slow, que tem um desempenho terrível e resolver tudo num comando só?

Selecionar tudo

CREATE OR REPLACE PROCEDURE ISEND_NFEITENS_SYNCHRO IS
BEGIN
INSERT INTO INSERT INTO synchro.synitf_idf
  (informante_est_codigo,
   dof_import_numero,
   idf_num,
   aliq_difa,
   aliq_icms,
   aliq_ii,
   aliq_ipi,
   aliq_iss,
   aliq_stf,
   aliq_stt,
   preço_total,
   preço_unitario,
   qtd,
   subclasse_idf,
   vl_ajuste_preço_total,
   vl_base_icms,
   vl_base_ipi,
   vl_base_irrf,
   vl_base_iss,
   vl_base_stf,
   vl_base_stt,
   vl_contabil,
   vl_difa,
   vl_faturado,
   vl_fiscal,
   vl_icms,
   vl_ii,
   vl_ipi,
   vl_irrf,
   vl_isento_icms,
   vl_isento_ipi,
   vl_iss,
   vl_outros_icms,
   vl_outros_ipi,
   vl_rateio_ajuste_preço,
   vl_rateio_frete,
   vl_rateio_oda,
   vl_rateio_seguro,
   vl_stf,
   vl_stt,
   vl_tributavel_icms,
   vl_tributavel_ipi,
   vl_tributavel_stf,
   vl_tributavel_stt,
   vl_tributavel_difa,
   aliq_inss,
   vl_base_inss,
   vl_inss,
   vl_aliq_cofins,
   vl_aliq_pis,
   vl_base_pis,
   vl_base_cofins,
   vl_imposto_pis,
   vl_imposto_cofins,
   aliq_pis,
   vl_pis,
   aliq_cofins,
   vl_cofins,
   nop_codigo,
   ctrl_instrucao,
   cfop_codigo,
   merc_codigo,
   om_codigo,
   stc_codigo,
   stp_codigo,
   entsai_uni_codigo,
   nbm_codigo,
   vl_outros_abat,
   am_codigo,
   fin_codigo,
   sta_codigo,
   stn_codigo)
  SELECT 0 -- informante_est_codigo
        ,0 -- dof_import_numero
        ,0 -- l_loop          -- IDF_NUM
        ,0 -- ALIQ_DIFA
        ,i.d1_picm -- ALIQ_ICMS
        ,0 -- ALIQ_II
        ,i.d1_ipi -- ALIQ_IPI
        ,0 -- ALIQ_ISS
        ,0 -- ALIQ_STF
        ,0 -- ALIQ_STT
        ,i.d1_total -- preço_TOTAL
        ,i.d1_vunit -- preço_UNITARIO
        ,i.d1_quant -- QTD
        ,'M' -- SUBCLASSE_IDF
        ,0 -- VL_AJUSTE_preço_TOTAL
        ,i.d1_baseicm -- VL_BASE_ICMS
        ,i.d1_baseipi -- VL_BASE_IPI
        ,0 -- VL_BASE_IRRF
        ,0 -- VL_BASE_ISS
        ,0 -- VL_BASE_STF
        ,0 -- VL_BASE_STT
        ,0 -- VL_CONTABIL
        ,0 -- VL_DIFA
        ,0 -- VL_FATURADO
        ,0 -- VL_FISCAL
        ,i.d1_valicm -- VL_ICMS
        ,i.d1_ii -- VL_II
        ,i.d1.valipi -- VL_IPI
        ,0 -- VL_IRRF
        ,0 -- VL_ISENTO_ICMS
        ,0 -- VL_ISENTO_IPI
        ,0 -- VL_ISS
        ,0 -- VL_OUTROS_ICMS
        ,0 -- VL_OUTROS_IPI
        ,0 -- VL_RATEIO_AJUSTE_preço
        ,i.d1_valfre -- VL_RATEIO_FRETE
        ,0 -- VL_RATEIO_ODA
        ,0 -- VL_RATEIO_SEGURO
        ,0 -- VL_STF
        ,0 -- VL_STT
        ,NULL -- VL_TRIBUTAVEL_ICMS
        ,0 -- VL_TRIBUTAVEL_IPI
        ,0 -- VL_TRIBUTAVEL_STF
        ,0 -- VL_TRIBUTAVEL_STT
        ,0 -- VL_TRIBUTAVEL_DIFA
        ,i.d1_aliqins -- ALIQ_INSS
        ,0 -- VL_BASE_INSS
        ,i.d1_valins -- VL_INSS
        ,0 -- VL_ALIQ_COFINS
        ,0 -- VL_ALIQ_PIS
        ,0 -- VL_BASE_PIS
        ,0 -- VL_BASE_COFINS
        ,0 -- VL_IMPOSTO_PIS
        ,0 -- VL_IMPOSTO_COFINS
        ,0 -- ALIQ_PIS
        ,0 -- VL_PIS
        ,0 -- ALIQ_COFINS
        ,0 -- VL_COFINS
        ,NULL -- NOP_CODIGO
        ,'M' -- Ctrl_Instrucao
        ,NULL -- CFOP_CODIGO
        ,NULL -- merc_codigo
        ,NULL -- om_codigo
        ,NULL -- stc_codigo
        ,NULL -- stp_codigo
        ,NULL -- entsai_uni_codigo
        ,NULL -- nbm_codigo
        ,NULL
        ,NULL -- am_codigo
        ,NULL -- fin_codigo
        ,NULL -- sta_codigo
        ,NULL -- stp_codigo
    FROM protheus.sd1010;
COMMIT;
END;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes