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

Funcion en package retorna tabla

Estas en el tema de Funcion en package retorna tabla en el foro de Oracle en Foros del Web. Hola a todos, Aquí con un problema que no le doy, pues no se mucho de este gestor. tengo una función, la cual regresa una ...
  #1 (permalink)  
Antiguo 24/12/2013, 13:29
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Funcion en package retorna tabla

Hola a todos,

Aquí con un problema que no le doy, pues no se mucho de este gestor.

tengo una función, la cual regresa una tabla cuando es ejecutado en un select, el código es el siguiente
create or replace type muajaja.objeto as object (
id_cd VARCHAR2(12)
,nombre_cd VARCHAR2(120)

);
/



create or replace type muajaja.typo_tabla as table of muajaja.objeto ;




CREATE OR REPLACE function muajaja.muncion(DES in varchar2) return muajaja.typo_tabla as
v_ret muajaja.typo_tabla;
begin
v_ret := muajaja.typo_tabla();

for i in (select * from muajaja.ptn_cat_transportista)
loop
v_ret.extend;
v_ret(v_ret.count) := muajaja.objeto(
'NO'
,'asdasdasdasdasasd'

);

end loop;


return v_ret;
end ;


select * from table(muajaja.muncion'articulo 1'));

Y me jala sin problemas, pero al momento de poner la función en un paquete
me sale error en la variable v_ret, y no se por que, puesto que lo estoy creando igual que el anterior.

Espero me puedan ayudar a meter la función en un paquete, gracias de antemano

Tengo Oracle 10G

Última edición por calakra; 24/12/2013 a las 13:30 Razón: falto poner tecnologia
  #2 (permalink)  
Antiguo 24/12/2013, 13:42
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Funcion en package retorna tabla

Ya quedo!!!!!!!!!

Por si alguien tiene el mismo problema se resuelve de siguiente forma.


en la especificación del paquete queda de la siguiente forma

function muajaja.muncion(DES in varchar2) return muajaja.typo_tabla ;

En el body de la siguiente

function muajaja.muncion(DES in varchar2) return muajaja.typo_tabla as
v_ret muajaja.typo_tabla;
begin....


Aunque no se por que es asi, espero alguien me pueda ilustrar ya que solo lo hice a prueba y error.

Gracias de antemano y espero sus respuestas
  #3 (permalink)  
Antiguo 24/12/2013, 15:16
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, 4 meses
Puntos: 2658
Respuesta: Funcion en package retorna tabla

Cita:
Aunque no se por que es asi, espero alguien me pueda ilustrar ya que solo lo hice a prueba y error.
¿Y no te parece que en lugar de prueba y error, si hubieses leido un manual de referencia te hubieses ahorrado problemas?
Por lo menos algo como:
http://www.devjoker.com/gru/tutorial...al-PL-SQL.aspx
http://www.tuinformaticafacil.com/or...-oracle-pl-sql

No es que no estime tu voluntad, pero tu problema era el desconocimiento básico del uso de packages. Y eso es más sencillo de resolver con los manuales.
Al menos es lo que hacemos habitualmente...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: funcion, package, retorna, tabla
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 22:47.