ora-21000

tema enviado por mduran en SQL
tema iniciado el 15/05/2007

tengo el siguiente PL

DECLARE
-- ---------------------------------------------------------------------------
/* ---------------------- VERSION = 1.00 -------------------------------------
|| Selecciona las candidatas a anular y las coloca en la tabla A8000500_sls
|| Se coloco un segundo Cursor para las polizas con tip_cobranza = DOM
/* -------------------------- DESCRIPCION ---------------------------------
|| -- MCORDOBE 05-2004
*/
------------------------------------------------------------------------
l_num_fncmto A8000500_sls.num_fncmto %TYPE;
l_num_dias_selec A8000220_sls.num_dias_selecc %TYPE;
l_tip_situ A8000500_sls.tip_situ %TYPE :=
1;
--
reg_a2990700 a2990700%ROWTYPE;
--
g_fec_tratamiento A8000500_sls.fec_tratamiento%TYPE;
g_num_orden A8000500_sls.num_orden%TYPE;
l_num_cuota A8000500_sls.num_cuota%TYPE;
--
g_cod_cia A2000030.cod_cia%TYPE ;
l_cod_sector A8000500_sls.cod_sector%TYPE;
l_cod_ramo A8000500_sls.cod_ramo%TYPE;
l_cod_nivel1 A8000500_sls.cod_nivel1%TYPE;
l_cod_nivel2 A8000500_sls.cod_nivel2%TYPE;
l_cod_nivel3 A8000500_sls.cod_nivel3%TYPE;
l_cod_agt A8000500_sls.cod_agt%TYPE;
l_cod_mon A8000500_sls.cod_mon%TYPE;
l_num_poliza_grupo A8000500_sls.num_poliza_grupo%TYPE;
l_num_contrato A8000500_sls.num_contrato%TYPE;
l_num_poliza_cliente A8000500_sls.num_poliza_cliente%TYPE;
l_num_poliza A8000500_sls.num_poliza%TYPE;
l_num_poliza_tronador A8000500_sls.num_poliza_tronador%TYPE;
l_num_poliza_definitivo A8000500_sls.num_poliza_definitivo%TYPE;
l_num_spto A8000500_sls.num_spto%TYPE;
l_num_apli A8000500_sls.num_apli%TYPE;
l_num_spto_apli A8000500_sls.num_spto_apli%TYPE;
l_tip_poliza_tr A8000500_sls.tip_poliza_tr%TYPE;
l_fec_efec_spto A8000500_sls.fec_efec_spto%TYPE;
l_fec_vcto_spto A8000500_sls.fec_vcto_spto%TYPE;
l_num_recibo A8000500_sls.num_recibo%TYPE :=
0;
l_num_riesgos A8000500_sls.num_riesgos%TYPE;
l_mca_prorrata A8000500_sls.mca_prorrata%TYPE;
l_imp_recibo A8000500_sls.imp_recibo%TYPE;
l_fec_actu A8000500_sls.fec_actu%TYPE := SYSDATE;
l_num_riesgo A8000500_sls.num_riesgos%TYPE;
g_cod_usr A8000500_sls.cod_usr%TYPE;
g_cod_mensaje g1010020.cod_mensaje%TYPE;
g_cod_idioma g1010020.cod_idioma%TYPE;
g_anx_mensaje g1010020.txt_mensaje%TYPE;
l_hay_datos_poliza VARCHAR2(
1);
--
-- Cursor que determina los dias de seleccion registrados en la tabla.
--
CURSOR c_a8000220_sls IS
SELECT num_dias_selecc
FROM a8000220_sls
WHERE cod_cia = g_cod_cia
AND cod_sector =
9999
AND cod_ramo =
999
AND num_cuota =
99
AND fec_validez <= SYSDATE
ORDER BY cod_sector, cod_ramo, num_cuota, fec_validez;
--
-- Selecciona si un fnmcto esta pendiente con tip_cobranza != domiciliacion
--
CURSOR c_a8001030_1 IS
SELECT *
FROM a8001030_sls a
WHERE a.cod_cia = g_cod_cia
AND a.tip_est_cuota IN (
'PE','CD')
AND TRUNC(a.fec_vencimiento) + l_num_dias_selec < g_fec_tratamiento
AND EXISTS (SELECT
'S'
FROM a8001000_sls b
WHERE b.cod_cia = a.cod_cia
AND b.num_fncmto = a.num_fncmto
AND b.tip_Est_fnc NOT IN (
'SO','AN')
AND b.tip_cobranza !=
'BAN');
--
-- Selecciona si un fnmcto esta pendiente con tip_cobranza domiciliacion
--
CURSOR c_a8001030_2 IS
SELECT *
FROM a8001030_sls a
WHERE a.cod_cia = g_cod_cia
AND a.tip_est_cuota IN (
'PE','CD')
AND TRUNC(a.fec_vencimiento) + (l_num_dias_selec *
2) < g_fec_tratamiento
AND EXISTS (SELECT
'S'
FROM a8001000_sls b
WHERE b.cod_cia = a.cod_cia
AND b.num_fncmto = a.num_fncmto
AND b.tip_Est_fnc NOT IN (
'SO','AN')
AND b.tip_cobranza =
'BAN');
--
-- Cursor que determina si la prima
--
CURSOR c_a8001010_sls IS
SELECT *
FROM a8001010_sls
WHERE cod_cia = g_cod_cia
AND num_fncmto = l_num_fncmto
AND (NVL(prima_fncble_pais,
0) >0 OR NVL(prima_fncble_divi,0) >0);
-- ------------------------------------------------------------------------
-- P_inserta_a8000500
-- Procediemnto que inserta en la tabla auxiliar a8000500_sls
-- los rgistros seleccionados o candidatos de la anualcion inversora .
--------------------------------------------------------------------------
PROCEDURE p_inserta_a8000500
( p_fec_tratamiento a8000500_sls.fec_tratamiento%TYPE,
p_num_orden a8000500_sls.num_orden%TYPE,
p_num_fncmto a8000500_sls.num_fncmto%TYPE,
p_num_cuota a8000500_sls.num_cuota%TYPE,
p_cod_sector a8000500_sls.cod_sector%TYPE,
p_cod_ramo a8000500_sls.cod_ramo%TYPE,
p_cod_nivel1 a8000500_sls.cod_nivel1%TYPE,
p_cod_nivel2 a8000500_sls.cod_nivel2%TYPE,
p_cod_nivel3 a8000500_sls.cod_nivel3%TYPE,
p_cod_agt a8000500_sls.cod_agt%TYPE,
p_cod_mon a8000500_sls.cod_mon%TYPE,
p_num_poliza_grupo a8000500_sls.num_poliza_grupo%TYPE,
p_num_contrato a8000500_sls.num_contrato%TYPE,
p_num_poliza_cliente a8000500_sls.num_poliza_cliente%TYPE,
p_num_poliza a8000500_sls.num_poliza%TYPE,
p_num_poliza_tronador a8000500_sls.num_poliza_tronador%TYPE,
p_num_poliza_definitivo a8000500_sls.num_poliza_definitivo%TYPE,
p_num_spto a8000500_sls.num_spto%TYPE,
p_num_apli a8000500_sls.num_apli%TYPE,
p_num_spto_apli a8000500_sls.num_spto_apli%TYPE,
p_tip_poliza_tr a8000500_sls.tip_poliza_tr%TYPE,
p_fec_efec_spto a8000500_sls.fec_efec_spto%TYPE,
p_fec_vcto_spto a8000500_sls.fec_vcto_spto%TYPE,
p_num_recibo a8000500_sls.num_recibo%TYPE,
p_num_riesgos a8000500_sls.num_riesgos%TYPE,
p_mca_prorrata a8000500_sls.mca_prorrata%TYPE,
p_imp_recibo a8000500_sls.imp_recibo%TYPE,
p_tip_situ a8000500_sls.tip_situ%TYPE,
p_cod_usr a8000500_sls.cod_usr%TYPE,
p_fec_actu a8000500_sls.fec_actu%TYPE
)
IS
BEGIN
ptraza(
'traza_candi', 'w', 'num_poliza:' || p_num_poliza);
ptraza(
'traza_candi', 'a', 'num_fncmto:' || p_num_fncmto);
-- traza para capturar error en produccion mcordobe
ptraza(
'traza_candi', 'a', p_fec_tratamiento);
ptraza(
'traza_candi', 'a',p_num_orden );
ptraza(
'traza_candi', 'a',p_num_fncmto );
ptraza(
'traza_candi', 'a',p_num_cuota );
ptraza(
'traza_candi', 'a',p_cod_sector );
ptraza(
'traza_candi', 'a',p_cod_ramo );
ptraza(
'traza_candi', 'a',p_cod_nivel1 );
ptraza(
'traza_candi', 'a',p_cod_nivel2 );
ptraza(
'traza_candi', 'a',p_cod_nivel3 );
ptraza(
'traza_candi', 'a',p_cod_agt );
ptraza(
'traza_candi', 'a',p_cod_mon );
ptraza(
'traza_candi', 'a',p_num_poliza_grupo );
ptraza(
'traza_candi', 'a',p_num_contrato );
ptraza(
'traza_candi', 'a',p_num_poliza_cliente);
ptraza(
'traza_candi', 'a',p_num_poliza );
ptraza(
'traza_candi', 'a',p_num_poliza_tronador);
ptraza(
'traza_candi', 'a',p_num_poliza_definitivo);
ptraza(
'traza_candi', 'a',p_num_spto );
ptraza(
'traza_candi', 'a',p_num_apli );
ptraza(
'traza_candi', 'a',p_num_spto_apli );
ptraza(
'traza_candi', 'a',p_tip_poliza_tr );
ptraza(
'traza_candi', 'a',p_fec_efec_spto );
ptraza(
'traza_candi', 'a',p_fec_vcto_spto );
ptraza(
'traza_candi', 'a',p_num_recibo );
ptraza(
'traza_candi', 'a',p_num_riesgos );
ptraza(
'traza_candi', 'a',p_mca_prorrata );
ptraza(
'traza_candi', 'a',p_imp_recibo );
ptraza(
'traza_candi', 'a',p_tip_situ );
ptraza(
'traza_candi', 'a',p_cod_usr );
ptraza(
'traza_candi', 'a',p_fec_actu );
INSERT INTO A8000500_SLS
( fec_tratamiento,
num_orden,
num_fncmto,
num_cuota,
cod_sector,
cod_ramo,
cod_nivel1,
cod_nivel2,
cod_nivel3,
cod_agt,
cod_mon,
num_poliza_grupo,
num_contrato,
num_poliza_cliente,
num_poliza,
num_poliza_tronador,
num_poliza_definitivo,
num_spto,
num_apli,
num_spto_apli,
tip_poliza_tr,
fec_efec_spto,
fec_vcto_spto,
num_recibo,
num_riesgos,
mca_prorrata,
imp_recibo,
tip_situ,
cod_usr,
fec_actu
)
VALUES
( p_fec_tratamiento,
p_num_orden,
p_num_fncmto,
p_num_cuota,
p_cod_sector,
p_cod_ramo,
p_cod_nivel1,
p_cod_nivel2,
p_cod_nivel3,
p_cod_agt,
p_cod_mon,
p_num_poliza_grupo,
p_num_contrato,
p_num_poliza_cliente,
p_num_poliza,
p_num_poliza_tronador,
p_num_poliza_definitivo,
p_num_spto,
p_num_apli,
p_num_spto_apli,
p_tip_poliza_tr,
p_fec_efec_spto,
p_fec_vcto_spto,
p_num_recibo,
p_num_riesgos,
p_mca_prorrata,
p_imp_recibo,
p_tip_situ,
p_cod_usr,
p_fec_actu
);
--
END p_inserta_a8000500;
-- ---------------------------------------------------
-- Recuperacion de globales
-- ---------------------------------------------------
PROCEDURE p_globales IS
BEGIN
--
g_fec_tratamiento := TO_DATE(
'05052007','DDMMYYYY');
g_cod_cia :=
2;
g_num_orden :=
168;
g_cod_usr :=
'ELPEREZ';
--
ptraza(
'maybe_candi', 'w', 'INICIO');
END p_globales;
-- -----------------------------------------------------------
-- te retorna el error que se presente
-- -----------------------------------------------------------
PROCEDURE p_devuelve_error IS
BEGIN
--
g_cod_idioma := trn_k_global.cod_idioma;
--
IF g_cod_mensaje BETWEEN
20000
AND
20999
THEN
--
RAISE_APPLICATION_ERROR(-g_cod_mensaje,
ss_k_mensaje.f_texto_idioma(g_cod_mensaje,
g_cod_idioma ) ||
g_anx_mensaje
);
--
ELSE
--
RAISE_APPLICATION_ERROR(-
20000,
ss_k_mensaje.f_texto_idioma(g_cod_mensaje,
g_cod_idioma ) ||
g_anx_mensaje
);
--
END IF;
--
END p_devuelve_error;
-----------------------------------------------------
-- **********
-- PRINCIPAL
-- **********
------------------------------------------------------
BEGIN
trn_k_global.asigna(
'mca_ter_tar','N');
p_globales;
ptraza(
'ANUL_POLIZA_NO_EXISTE', 'w', 'CORRIDA DEL:' || g_fec_tratamiento);
---- ---------------------------------------------------
-- Recuperacion de dias de selecci¾n
-- ---------------------------------------------------
OPEN c_a8000220_sls;
FETCH c_a8000220_sls INTO l_num_dias_selec;
CLOSE c_a8000220_sls;
--
IF l_num_dias_selec >
0
THEN
FOR reg_1030 IN c_a8001030_1
LOOP
--
l_num_fncmto := reg_1030.num_fncmto;
l_num_cuota := reg_1030.num_cuota;
--
FOR reg_1010 IN c_a8001010_sls
LOOP
--
ptraza(
'maybe_candi', 'a', 'num_recibo 1 ' || reg_1010.num_recibo );
reg_a2990700 := fn_f_datos_poliza_sls(
1,
reg_1010.num_poliza,
reg_1010.num_recibo);
--
l_hay_datos_poliza := em_f_existe_poliza_sls(
1 ,
reg_a2990700.num_poliza,
reg_a2990700.num_spto);
--
IF l_hay_datos_poliza =
'S'
THEN
em_k_a2000030.p_lee(reg_a2990700.cod_cia,
reg_a2990700.num_poliza,
reg_a2990700.num_spto,
reg_a2990700.num_apli,
reg_a2990700.num_spto_apli);
--
ptraza(
'maybe_candi', 'a', 'num_recibo 2 ' || l_num_recibo );
l_num_fncmto := reg_1010.num_fncmto;
--l_num_recibo := reg_1010.num_recibo;
l_num_cuota := reg_1030.num_cuota;
l_cod_sector := em_k_a2000030.f_cod_sector;
l_cod_ramo := em_k_a2000030.f_cod_ramo;
l_cod_nivel1 := em_k_a2000030.f_cod_nivel1;
l_cod_nivel2 := em_k_a2000030.f_cod_nivel2;
l_cod_nivel3 := em_k_a2000030.f_cod_nivel3;
l_cod_agt := em_k_a2000030.f_cod_agt;
l_cod_mon := em_k_a2000030.f_cod_mon;
l_num_poliza_grupo := em_k_a2000030.f_num_poliza_grupo;
l_num_contrato := em_k_a2000030.f_num_contrato;
l_num_poliza_cliente := em_k_a2000030.f_num_poliza_cliente;
l_num_poliza := reg_a2990700.num_poliza;
l_num_riesgo := em_k_a2000030.f_num_riesgos;
l_num_poliza_tronador := null;
l_num_poliza_definitivo := null;
l_num_spto := reg_a2990700.num_spto;
l_num_apli := reg_a2990700.num_apli;
l_num_spto_apli := reg_a2990700.num_spto_apli;
l_tip_poliza_tr := null;
l_fec_efec_spto := em_k_a2000030.f_fec_efec_spto;
l_fec_vcto_spto := em_k_a2000030.f_fec_vcto_spto;
l_num_riesgos := em_k_a2000030.f_num_riesgos;
l_mca_prorrata := em_k_a2000030.f_mca_prorrata;
l_imp_recibo := reg_a2990700.imp_recibo;
l_num_recibo := reg_a2990700.num_recibo;
ptraza(
'maybe_candi', 'a', 'num_recibo 3 ' || l_num_recibo );
--
p_inserta_a8000500 ( g_fec_tratamiento,
g_num_orden,
l_num_fncmto ,
l_num_cuota,
l_cod_sector,
l_cod_ramo,
l_cod_nivel1,
l_cod_nivel2,
l_cod_nivel3,
l_cod_agt,
l_cod_mon,
l_num_poliza_grupo,
l_num_contrato,
l_num_poliza_cliente,
l_num_poliza,
l_num_poliza_tronador,
l_num_poliza_definitivo,
l_num_spto,
l_num_apli,
l_num_spto_apli,
l_tip_poliza_tr,
l_fec_efec_spto,
l_fec_vcto_spto,
l_num_recibo,
l_num_riesgos,
l_mca_prorrata,
l_imp_recibo,
l_tip_situ,
g_cod_usr,
l_fec_actu);
ELSE
--
ptraza(
'ANUL_POLIZA_NO_EXISTE', 'a', 'POLIZA SPTO' );
ptraza(
'ANUL_POLIZA_NO_EXISTE', 'a', reg_a2990700.num_poliza || reg_a2990700.num_spto);
--
END IF;
--
END LOOP;
--
END LOOP;
-- -----------------------------------
-- DOMICILIADOS
-- ------------------------------------
ptraza(
'maybe_candi', 'a', 'CANDIDATAS DOMI' );
FOR reg_1030 IN c_a8001030_2
LOOP
--
l_num_fncmto := reg_1030.num_fncmto;
l_num_cuota := reg_1030.num_cuota;
--
FOR reg_1010 IN c_a8001010_sls
LOOP
--
ptraza(
'maybe_candi', 'a', 'num_recibo 1 ' || reg_1010.num_recibo );
reg_a2990700 := fn_f_datos_poliza_sls(
1,
reg_1010.num_poliza,
reg_1010.num_recibo);
--
l_hay_datos_poliza := em_f_existe_poliza_sls(
1 ,
reg_a2990700.num_poliza,
reg_a2990700.num_spto);
--
IF l_hay_datos_poliza =
'S'
THEN
--
em_k_a2000030.p_lee(reg_a2990700.cod_cia,
reg_a2990700.num_poliza,
reg_a2990700.num_spto,
reg_a2990700.num_apli,
reg_a2990700.num_spto_apli);
--
ptraza(
'maybe_candi', 'a', 'num_recibo 2 ' || l_num_recibo );
ptraza(
'maybe_candi', 'a', 'num_recibo 3 ' || reg_1010.num_recibo );
l_num_fncmto := reg_1010.num_fncmto;
--l_num_recibo := reg_1010.num_recibo;
l_num_cuota := reg_1030.num_cuota;
l_cod_sector := em_k_a2000030.f_cod_sector;
l_cod_ramo := em_k_a2000030.f_cod_ramo;
l_cod_nivel1 := em_k_a2000030.f_cod_nivel1;
l_cod_nivel2 := em_k_a2000030.f_cod_nivel2;
l_cod_nivel3 := em_k_a2000030.f_cod_nivel3;
l_cod_agt := em_k_a2000030.f_cod_agt;
l_cod_mon := em_k_a2000030.f_cod_mon;
l_num_poliza_grupo := em_k_a2000030.f_num_poliza_grupo;
l_num_contrato := em_k_a2000030.f_num_contrato;
l_num_poliza_cliente := em_k_a2000030.f_num_poliza_cliente;
l_num_poliza := reg_a2990700.num_poliza;
l_num_riesgo := em_k_a2000030.f_num_riesgos;
l_num_poliza_tronador := null;
l_num_poliza_definitivo := null;
l_num_spto := reg_a2990700.num_spto;
l_num_apli := reg_a2990700.num_apli;
l_num_spto_apli := reg_a2990700.num_spto_apli;
l_tip_poliza_tr := null;
l_fec_efec_spto := em_k_a2000030.f_fec_efec_spto;
l_fec_vcto_spto := em_k_a2000030.f_fec_vcto_spto;
l_num_riesgos := em_k_a2000030.f_num_riesgos;
l_mca_prorrata := em_k_a2000030.f_mca_prorrata;
l_imp_recibo := reg_a2990700.imp_recibo;
l_num_recibo := reg_a2990700.num_recibo;
ptraza(
'maybe_candi', 'a', 'num_recibo 3 ' || l_num_recibo );
--
p_inserta_a8000500 ( g_fec_tratamiento,
g_num_orden,
l_num_fncmto ,
l_num_cuota,
l_cod_sector,
l_cod_ramo,
l_cod_nivel1,
l_cod_nivel2,
l_cod_nivel3,
l_cod_agt,
l_cod_mon,
l_num_poliza_grupo,
l_num_contrato,
l_num_poliza_cliente,
l_num_poliza,
l_num_poliza_tronador,
l_num_poliza_definitivo,
l_num_spto,
l_num_apli,
l_num_spto_apli,
l_tip_poliza_tr,
l_fec_efec_spto,
l_fec_vcto_spto,
l_num_recibo,
l_num_riesgos,
l_mca_prorrata,
l_imp_recibo,
l_tip_situ,
g_cod_usr,
l_fec_actu);
--
ELSE
--
ptraza(
'ANUL_POLIZA_NO_EXISTE', 'a', 'POLIZA SPTO' );
ptraza(
'ANUL_POLIZA_NO_EXISTE', 'a', reg_a2990700.num_poliza || reg_a2990700.num_spto);
--
END IF;
--
END LOOP;
--
END LOOP;
trn_k_global.asigna(
'mca_ter_tar','S');
ELSE
g_cod_mensaje :=
20001;
p_devuelve_error;
trn_k_global.asigna(
'mca_ter_tar','N');
END IF;
--
COMMIT;
--
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM);
END;

y me arroja el siguiente error:

ora-21000: error number argument to raise_application_error of -6502 is out of range...

no veo de donde puede generar ese error