Foros del Web » Bases de Datos » Oracle »

Error en store procedure, PLS-00103:

Estas en el tema de Error en store procedure, PLS-00103: en el foro de Oracle en Foros del Web. Hola, hice un paquete en el TOAD con el cual administro mi BD Oracle 10g. Este paquete lo voy a llamar desde mi codigo en ...
  #1 (permalink)  
Antiguo 23/02/2007, 14:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 5
Antigüedad: 7 años, 7 meses
Puntos: 0
Error en store procedure, PLS-00103:

Hola, hice un paquete en el TOAD con el cual administro mi BD Oracle 10g. Este paquete lo voy a llamar desde mi codigo en java pero me marca un error el último EXCEPTION del cuerpo del paquete:

PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following:

begin case declare end exit for goto if loop mod null pragma
raise return select update while with <an identif


El codigo PL-SQL es el siguiente:

CREATE OR REPLACE PACKAGE pack_gastos IS

TYPE c_cat_depto_type IS REF CURSOR;

FUNCTION f_mant_cat_deptos (
v_accion VARCHAR2,
v_cvedpto gto_departamento.CLAVE_DEPARTAMENTO%TYPE,
v_descripcion gto_departamento.DESCRIPCION%TYPE,
v_domicilio gto_departamento.DOMICILIO%TYPE,
v_telefono gto_departamento.TELEFONO%TYPE,
v_responsable gto_departamento.RESPONSABLE%TYPE,
v_fecha_alta VARCHAR2,
v_fecha_baja VARCHAR2,
v_codigo VARCHAR2,
v_numero_registros OUT NUMBER,
c_cat_depto OUT c_cat_depto_type
) RETURN NUMBER;

END pack_gastos;
/

CREATE OR REPLACE PACKAGE BODY pack_gastos IS

FUNCTION f_mant_cat_deptos (
v_accion VARCHAR2,
v_cvedpto gto_departamento.CLAVE_DEPARTAMENTO%TYPE,
v_descripcion gto_departamento.DESCRIPCION%TYPE,
v_domicilio gto_departamento.DOMICILIO%TYPE,
v_telefono gto_departamento.TELEFONO%TYPE,
v_responsable gto_departamento.RESPONSABLE%TYPE,
v_fecha_alta VARCHAR2,
v_fecha_baja VARCHAR2,
v_codigo VARCHAR2,
v_numero_registros OUT NUMBER,
c_cat_depto OUT c_cat_depto_type
) RETURN NUMBER IS
v_clave NUMBER;
BEGIN
IF v_accion = 'L' THEN
BEGIN
SELECT COUNT(*) INTO v_numero_registros
FROM GTO_DEPARTAMENTO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_numero_registros := 0;
END;
IF v_numero_registros = 0 THEN
RETURN -1;
ELSE
OPEN c_cat_depto FOR
SELECT A.CLAVE_DEPARTAMENTO,
A.DESCRIPCION,
A.DOMICILIO,
A.TELEFONO,
A.RESPONSABLE,
TO_CHAR(A.FECHA_ALTA,'DD/MM/YYYY'),
TO_CHAR(A.FECHA_BAJA,'DD/MM/YYYY'),
A.CODIGO
FROM GTO_DEPARTAMENTO A
ORDER BY CLAVE_DEPARTAMENTO;
END IF;
ELSIF v_accion = 'I' THEN
v_numero_registros := 0;
SELECT NVL(MAX(CLAVE_DEPARTAMENTO)+1,1)
INTO v_clave
FROM GTO_DEPARTAMENTO;
INSERT INTO GTO_DEPARTAMENTO (
CLAVE_DEPARTAMENTO,
DESCRIPCION,
DOMICILIO,
TELEFONO,
RESPONSABLE,
FECHA_ALTA,
FECHA_BAJA,
CODIGO)

VALUES (v_clave,
v_descripcion,
v_domicilio,
v_telefono,
v_responsable,
TO_DATE(v_fecha_alta,'DD/MM/YYYY'),
TO_DATE(v_fecha_baja,'DD/MM/YYYY'),
v_codigo);

ELSE IF v_accion = 'M' THEN
v_numero_registros := 0;
UPDATE GTO_DEPARTAMENTO A
SET A.DESCRIPCION = v_descripcion,
A.DOMICILIO = v_domicilio,
A.TELEFONO = v_telefono,
A.RESPONSABLE = v_responsable,
A.FECHA_ALTA = TO_DATE(v_fecha_alta,'DD/MM/YYYY'),
A.FECHA_BAJA = TO_DATE(v_fecha_baja,'DD/MM/YYYY'),
A.CODIGO = v_codigo
WHERE A.CLAVE_DEPARTAMENTO = v_cvedpto;
ELSIF v_accion = 'E' THEN
v_numero_registros := 0;
DELETE GTO_DEPARTAMENTO WHERE CLAVE_DEPARTAMENTO = v_cvedpto; END IF;
RETURN 1;
EXCEPTION //AQUI MARCA EL ERROR

WHEN OTHERS THEN
RETURN -1;
END f_mant_cat_deptos;
END pack_gastos;
/

Desde java lo llamo de esta forma:

try {
conn = getConnection();
commonCS = conn.prepareCall("{? = call pack_gastos.f_mant_cat_deptos(?,?,?,?,?,?,?,?,?,?, ?)}");

No encuentro la forma de solucionarlo espero puedan ayudarme. Gracias
  #2 (permalink)  
Antiguo 24/02/2007, 02:45
 
Fecha de Ingreso: julio-2003
Mensajes: 141
Antigüedad: 11 años, 2 meses
Puntos: 5
Re: Error en store procedure, PLS-00103:

Hola!
Si estuviera un poco mas identado el codigo sería mas facil de ver.
De todas formas lo que te falla es algun bloque "begin ... exception .... end"

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:13.
SEO by vBSEO 3.3.2