Oracle - Datos Tipo Tabla Urgente

 
Vista:

Datos Tipo Tabla Urgente

Publicado por Raquel (1 intervención) el 09/08/2002 10:17:47
Primero, gracias por prestarme atención.
Llevo unos días investigando sobre los datos tipo tabla, pero no los entiendo. He leído en varios libros pero los ejemplos en los que veo que se utilizan tampoco me aclaran realmente la funcionalidad y las ventajas que pueden aportarme. Os agradecería si me pudieséis orientar un poquillo o indicarme donde puedo encontrar un manual que despeje mis dudas.

De nuevo, 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:Datos Tipo Tabla Urgente

Publicado por Eärendel (2 intervenciones) el 09/08/2002 10:42:20
Hola Raquel, piensa en los datos tipo tabla como si se tratasen de "arrays" o de cursores.
Lo primero que debes hacer es declararlos ya que se tratan de variables de memoria, ¿cómo?, pues primero puedes declarar el tipo registro:

type mi_registro is record (campo1 varchar2(3),
campo2 number,
...);

Y después creas un tipo tabla del registro que has creado

type mi_tabla is table of mi_registro index by binary_integer;

Luego defines una variable del tipo tabla, por ejemplo

la_tabla mi_tabla;

Empezado ya el cuerpo de código (entre el begin y el end) puedes acceder a estos registros como un array, por ejemplo, dar altas así

la_tabla(1).campo1 := 'abc';
la_tabla(1).campo2 := 1;
la_tabla(2).campo2 := 'xyz';
...

Y luego tienes utilidades tipo la_tabla.count, que te dice el número de registro, muy útil para recorrerla, ejemplo

for i in 1..la_tabla.count loop
....
end loop;

O también la utilidad la_tabla(5).exists , te dice si en el elemento 5 hay o no datos... etc...
OJO, si intentas acceder a un registro que no tenga datos te saltará a la excepción NO_DATA_FOUND.

¿Y para qué sirve?, puedes utilizalo para pasar entre procedimientos o entre procedimientos y formularios registros enteros de datos sin necesidad de crear tablas temporales.

Bueno, si necesitas algo me pasas un correo.

Un saludo,
Eärendel
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

Muchas Gracias Eärendel

Publicado por raquel (9 intervenciones) el 09/08/2002 11:10:49
Voy a probar todo lo que me has contado y ya te contaré como me ha ido.
De nuevo, 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

EFICIENCIA !!!

Publicado por DACH (258 intervenciones) el 09/08/2002 15:45:48
Hola Raquel, además debes saber que se tiene más eficiencia trabajando con este tipo de tablas, que en definitiva son tablas lógicas o de memoria, en el caso de procesar muchos registros millones y trabajar con tablas temporales y de paso el tiempo de respuesta es considerablemente mayor a utilizar tablas de memoria .-

Salu2.-
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