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

Funciones con mismo nombre

Estas en el tema de Funciones con mismo nombre en el foro de Oracle en Foros del Web. Hola gente gracias desde ya, A ver si alguien me puede ayudar, pasa que necesito escribir una funcion en oracle que acepte por parametro un ...
  #1 (permalink)  
Antiguo 14/05/2013, 14:44
 
Fecha de Ingreso: mayo-2009
Mensajes: 8
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Funciones con mismo nombre

Hola gente gracias desde ya,
A ver si alguien me puede ayudar, pasa que necesito escribir una funcion en oracle que acepte por parametro un dato generico puede ser date, varchar2, number y que devuelta un char. El tema es q en db2 lo q hacemos es crear la misma funcion con el mismo nombre n veces y pasarle por parametro el tipo de dato. Pero creo q oracle no permite eso o si? Estaba ensando en un parametro generico q acepte cualquier tipo de dato y q lo convierta a char. Pero no se cual puede sevir. Gracias
  #2 (permalink)  
Antiguo 14/05/2013, 15:10
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Funciones con mismo nombre

geihidfon... en oracle es posible tener funciones sobrecargadas (que es lo que mencionas) siempre y cuando esten dentro de un package.

Si creas la función por fuera del package lo que pasa es que te la sobreescribe con el nuevo tipo de dato.

Lo que puedes hacer es crear un paquete que tenga el mismo nombre de funcion muchas veces y que lo diferencie el tipo de dato ingresado.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 14/05/2013, 15:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 8
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Respuesta: Funciones con mismo nombre

Gracias por la pronta respuesta huesos52. Voy a realizar la prueba y comento.
  #4 (permalink)  
Antiguo 14/05/2013, 22:06
 
Fecha de Ingreso: mayo-2009
Mensajes: 8
Antigüedad: 14 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Funciones con mismo nombre

Hola huesos52, si funciono la sobre escritura si se hace dentro de un paquete muchas gracias.
Acá la prueba por si les sirve: Esta es la definición en el body creo las mismas funciones con la lógica.
Código HTML:
CREATE OR REPLACE PACKAGE PRUEBA.PQ_WS_ACTIVIDADES AS
    FUNCTION F_Valida_Act_Area (pv_empresa IN NUMBER, pv_plan IN NUMBER, pv_actividad IN NUMBER, pv_area IN VARCHAR2) RETURN VARCHAR2;
     FUNCTION F_Valida_Act_Area (pv_empresa IN CHAR, pv_plan IN CHAR, pv_actividad IN NUMBER, pv_area IN VARCHAR2) RETURN VARCHAR2;
END PQ_WS_ACTIVIDADES;
/
Me queda una duda relacionada con el mismo tema…
Es posible manejar una única función y a la misma enviarle por parámetro cualquier tipo de dato?
Ejemplo
función F_Valida_Act_Area (pasarle un date); ó
función F_Valida_Act_Area (pasarle un varchar2);
Esto teniendo definida una sola función?
Gracias....
  #5 (permalink)  
Antiguo 15/05/2013, 15:58
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Funciones con mismo nombre

Podrías hacerlo en plan "chapu".

Créate la función con 3 parámetros y en la llamada le pasas el que quieras.

Código SQL:
Ver original
  1. functión F_Valida_Act_Area (param1 IN DATE DEFAULT NULL,param2 IN varchar2 DEFAULT NULL) RETURN..........;
y en la llamada pasas el que quieras :

Código SQL:
Ver original
  1. SELECT F_Valida_Act_Area ( SYSDATE => PARAM1 ) -- O (  PARAM1 => SYSDATE ) NO RECUERDO EL ORDEN
  2. FROM DUAL

Etiquetas: funcion, funciones, nombre
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 19:38.