Oracle - Funcion "sencilla" de PL/SQL

 
Vista:

Funcion "sencilla" de PL/SQL

Publicado por Tomás (5 intervenciones) el 22/04/2005 15:54:35
Hola a todos.

¿Sabe alguien cómo se puede devolver una serie de registros mediante una función PL/SQL? No conozco mucho de PL/SQL, pero entiendo que debería ser una tarea sencilla, pero no sé cómo hacerlo.

Es decir, tengo una sentencia SQL que devuelve muchos registros (indefinidos), y me interesa crear una función (o procedimiento, si aplica) que devuelva el resultado de esa sentencia PL/SQL.

Muchas gracias.
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:Funcion

Publicado por Leonardo (93 intervenciones) el 22/04/2005 21:17:28
Una vez que tengas ese resultado, ¿Podrias decirme que haras con ellos?
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

RE:Funcion

Publicado por Tomás (5 intervenciones) el 22/04/2005 21:24:29
Sí, muy sencillo.

Evidentemente no se trata de hacer una simple query. La idea es hacer una query, y en función de si devuelve resultados o no, lanzar otra query en otra tabla. Es decir, si la primera consulta me devuelve resultados, son los que muestro y no hago la segunda consulta. Si no me devuelve resultado sí hago esa segunda consulta y muestro los resultados.

Muchas gracias
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

RE:Funcion

Publicado por Luis D (41 intervenciones) el 22/04/2005 23:27:02
dependiendo del caso si estas en un process pl-sql podrias utilizar las varibales sql%notfound o utilizar exceptions

declare
resultado char
begin
select 'x' into resultado from tabla
exception
when no_data_found then
hacer-algo
end
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

RE:Funcion

Publicado por Alejandro Cesar (189 intervenciones) el 28/04/2005 19:54:54
Me inclino por la respuesta que te dió Luis D, pero si no es eso lo que buscas a lo mejor esto te sirva pipelined function:
http://asktom.oracle.com/pls/ask/f?p=4950:8:6380110289115022016::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:4447489221109

http://asktom.oracle.com/pls/ask/f?p=4950:8:6380110289115022016::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:19481671347143

http://asktom.oracle.com/pls/ask/f?p=4950:8:6380110289115022016::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:2270447621346
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