Oracle - ORA-01741: identificador de longitud cero no válid

 
Vista:

ORA-01741: identificador de longitud cero no válid

Publicado por ROCHO (1 intervención) el 20/05/2009 05:13:59
Buenas noches , soy nuevo con ORACLE y uso la version gratuita 10g....

ESTOY DESARROLLANDO UNA APLICACION EN ASP.NET , CREE UNAS FUNCIONES Y STORED PROCEDURES , PERO AL LLAMAR CUALQUIERA DE LAS FUNCIONES O STORED YA SEA DESDE LA APLICACION O EJECUTANDO DESDE EL MANAGER(EMS MANAGER FOR ORACLE )ME VOTA EL ERROR "ORA-01741: identificador de longitud cero no válido"......

QUE ME ESTA FALTANDO???? POR QUE ME BOTA ESE ERROR?? YA INVESTIGUE PERO NO DOY CON LA RESPUESTA.... LES PONDRE UNO DE LOS STORED:

PROCEDURE SYSTEM.AUTENTICACION (P_PHASH IN CAT_USUARIO.PSS_HASH%TYPE,
P_LOGIN IN CAT_USUARIO.LOGIN%TYPE,
OUT_EXISTE OUT NUMERIC
)
IS
L_HAY NUMERIC;
BEGIN
SELECT COUNT(ID_USU) INTO L_HAY
FROM SYSTEM.CAT_USUARIO
WHERE LOGIN=P_LOGIN AND PSS_HASH=P_PHASH;
IF L_HAY > 0 THEN
OUT_EXISTE := 1;
ELSE
OUT_EXISTE := 0;
END If;
END;

SALUDOS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ORA-01741: identificador de longitud cero no vá

Publicado por Sergio (79 intervenciones) el 21/05/2009 06:09:23
Que tal, dos cosas: 1ra, por seguridad y administración misma de Oracle no deberías crear objetos en el esquema SYSTEM sino en un esquema propio para tus objetos. 2do, el tipo de dato NUMERIC es un subtipo del tipo de dato NUMBER el cual Oracle conserva por compatibilidad con ANSI, en realidad deberías usar para tus SP el tipo de dato NUMBER y el error es porque te falta especificar la presición, es decir, enteros y decimales. Puedes usar la definición que empleaste para declarar los parámetros de tu procedimiento con %TYPE también para declarar tus variables, es decir: L_HAY SYSTEM.CAT_USUARIO.L_HAY%TYPE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar