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

Obtener en una variable el resultado de un select en oracle

Estas en el tema de Obtener en una variable el resultado de un select en oracle en el foro de Oracle en Foros del Web. BUENOS DIAS AMIGOS ME PIDIERON QUE REALICE UNA FUNCION PARA OBTENER EL RESULTADO DE UN SELECT DE UNA TABLA EN UNA VARIABLE DE TIPO CADENA ...
  #1 (permalink)  
Antiguo 15/01/2014, 09:27
 
Fecha de Ingreso: noviembre-2011
Ubicación: lima
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 0
Obtener en una variable el resultado de un select en oracle

BUENOS DIAS AMIGOS ME PIDIERON QUE REALICE UNA FUNCION
PARA OBTENER EL RESULTADO DE UN SELECT DE UNA TABLA EN UNA VARIABLE DE
TIPO CADENA
*-EL ERROR ES QUE ME EL RESULTADO ME DEVUELVE MAS DE UN ITEM
*- SI SOLO ME DEVOLVIERA UN SOLO REGISTRO SE PODRIA REALIZAR EL INTO EN UNA VARIABLE PERO ESTO ME DEVUELVE MAS DE UN REGISTRO.

EL CODIGO QUE REALICE AL PRINCIPIO FUE ESTO PERO ME SALE ERROR DE QUE ME DEVUELVE UN MAYOR DE FILAS
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION SF_PROBAR_FUNCC
  2. (
  3. V_PLANILLA  IN VARCHAR2:='1'
  4. )RETURN VARCHAR2
  5. IS
  6. V_RESULTADO VARCHAR2(2000);
  7. BEGIN
  8. SELECT DEPENDENCIA||''||DESCRIPCION INTO V_RESULTADO FROM actividades
  9. WHERE PLANILLA=V_PLANILLA;
  10. RETURN V_RESULTADO;
  11.  
  12. END SF_PROBAR_FUNCC;
*-EL SIGUIENTE CODIGO ME SALE ERROR EN EL SELECT
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION SF_PROBAR_FUNC
  2. (
  3. V_PLANILLA  IN VARCHAR2:='1'
  4. )RETURN VARCHAR2
  5. IS
  6. V_RESULTADO VARCHAR2(2000);
  7. BEGIN
  8. V_RESULTADO:=SELECT DEPENDENCIA||''||DESCRIPCION AS CADENA FROM actividades
  9.  
  10. WHERE PLANILLA=V_PLANILLA;
  11. --DBMS_OUTPUT.put_line(V_RESULTADO);
  12. RETURN V_RESULTADO;
  13. END SF_PROBAR_FUNC;

SALUDOS CORDIALES

Última edición por gnzsoloyo; 15/01/2014 a las 09:49 Razón: Si etiquetar.
  #2 (permalink)  
Antiguo 15/01/2014, 09:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Obtener en una variable el resultado de un select en oracle

Tu problema tiene dos soluciones:
1) Si sólo debes obtener una única cadena de un único registro, entonces la query no es correcta, porque no estás poniendo las condiciones del WHERE necesairas. En otras palabras, no es suficientemente discriminante, y necesitas agregar condiciones para restringir el resultado.
2) Si puedes obtener más de un registro, porque así lo puede manejar tu aplicativo, entonces lo que debe devolver la función no es una cadena de texto sino un CURSOR, es decir, un array de cadenas. Eso requeriría algunos cuantos retoques en ambos lados.

Finalmente: No escribas todo en mayísculas, por favor. Eso, en un foro, se entiende como GRITAR.
Es muy desagradable.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/01/2014, 17:20
 
Fecha de Ingreso: noviembre-2011
Ubicación: lima
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Obtener en una variable el resultado de un select en oracle

Muchas Gracias por compartir sus conocimientos
gracias a su apoyo lo pude resolver de la siguiente forma

CREATE OR REPLACE FUNCTION SF_PROBAR_FUNCC
(
V_PLANILLA IN VARCHAR2
)RETURN VARCHAR2
IS
V_RESULTADO VARCHAR2(2000);
BEGIN
SELECT WM_CONCAT(DEPENDENCIA||'-'||DESCRIPCION)INTO V_RESULTADO FROM actividades
WHERE PLANILLA=V_PLANILLA;
DBMS_OUTPUT.put_line(V_RESULTADO);
RETURN V_RESULTADO;
END SF_PROBAR_FUNCC;


Saludos Cordiales.

Etiquetas: funcion, registro, resultado, select, tabla, tipo, variable
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 18:14.