Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Error Pls-00103

Estas en el tema de Error Pls-00103 en el foro de Oracle en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/07/2007, 15:38
 
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..
  #2 (permalink)  
Antiguo 26/07/2007, 19:08
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: Error Pls-00103

es mi imaginacion o estaria mal formado el sql?

AND emp.id_personal = perf_emp.id_personal '
|| ' pe.id_unidad_administrativa = ct.uniadm_clave '
|| ' FROM ....

otra por aca

...REPLACE(ct.uniadm_descripcion,''"'') unidad, ';


IF (pnombre IS NOT NULL) THEN
IF paso > 0
THEN
vsql := vsql || ' AND ';
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 28/07/2007, 22:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 251
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Error Pls-00103

Cita:
Iniciado por kikolice Ver Mensaje
es mi imaginacion o estaria mal formado el sql?

AND emp.id_personal = perf_emp.id_personal '
|| ' pe.id_unidad_administrativa = ct.uniadm_clave '
|| ' FROM ....

otra por aca

...REPLACE(ct.uniadm_descripcion,''"'') unidad, ';


IF (pnombre IS NOT NULL) THEN
IF paso > 0
THEN
vsql := vsql || ' AND ';
exacto ese codigo esta mal
__________________
www.lomasnuevo.net
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 23:06.