Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/07/2007, 15:38
mina_1119
 
Fecha de Ingreso: noviembre-2006
Ubicación: Villahermosa,Tabasco,Mexi
Mensajes: 22
Antigüedad: 17 años, 5 meses
Puntos: 1
Error Pls-00103

HOLA BUENAS TARDES:

TENGO ESTE ERROR TRATANDO DE EJECUTAR UNA FUNCION EN ORACLE ALGUIEN ME PUEDE DECIR QUE ESTOY HACIENDO MAL:

LA FUNCION EN ORACLE ES LA SIG.:
FUNCTION get_datosempleado (
pap_paterno empleados.ap_paterno%TYPE,
pap_materno empleados.ap_materno%TYPE,
pnombre empleados.nombre%TYPE,
prfc empleados.rfc%TYPE
)
RETURN sys_refcursor
IS
resultado sys_refcursor;
vsql VARCHAR2 (4000);
paso INTEGER;
BEGIN
paso := 0;
vsql :=
'SELECT emp.id_personal id_personal, '
|| ' NVL(emp.nombre, '' '') nombre, '
|| ' NVL(emp.ap_paterno, '' '') ap_paterno, '
|| ' NVL(emp.ap_materno, '' '') ap_materno, '
|| ' NVL(emp.rfc, '' '') rfc, REPLACE(ct.uniadm_descripcion,''"'') unidad, ';


IF (pnombre IS NOT NULL) THEN
IF paso > 0
THEN
vsql := vsql || ' AND ';
END IF;

vsql :=
vsql
|| ' emp.nombre like '
|| CHR (39)
|| '%'
|| pnombre
|| '%'
|| CHR (39);
paso := 1;
END IF;

IF (pap_paterno IS NOT NULL) THEN
IF paso > 0 THEN
vsql := vsql || ' AND ';
END IF;

vsql :=
vsql
|| ' emp.ap_paterno LIKE '
|| CHR (39)
|| '%'
|| pap_paterno
|| '%'
|| CHR (39);
paso := 1;
END IF;

IF (pap_materno IS NOT NULL) THEN
IF paso > 0 THEN
vsql := vsql || ' AND ';
END IF;

vsql :=
vsql
|| ' emp.ap_materno LIKE '
|| CHR (39)
|| '%'
|| pap_materno
|| '%'
|| CHR (39);
paso := 1;
END IF;

IF (prfc IS NOT NULL) THEN
IF paso > 0 THEN
vsql := vsql || ' AND ';
END IF;

vsql :=
vsql
|| ' emp.rfc LIKE '
|| CHR (39)
|| '%'
|| prfc
|| '%'
|| CHR (39);
END IF;

vsql :=
vsql
|| ' AND emp.id_personal = perf_emp.id_personal '
|| ' pe.id_unidad_administrativa = ct.uniadm_clave '
|| ' FROM empleados emp, perfiles_empleados perf_emp, cat_unidades_administrativas ct WHERE';


vsql :=
vsql
|| ' ORDER BY emp.NOMBRE, emp.AP_PATERNO, emp.AP_MATERNO';
OPEN resultado FOR vsql;

RETURN resultado;
END;


Y ESTE ES EL ERROR Q M ARROJA LA PAGINA:
PLS-00103: Encountered the symbol "," when expecting one of the following: ( - + case mod new not null others avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date pipe .


DE ANTEMANO GRACIAS POR LA AYUDA..