Oracle - Almacenar una consulta en un array

 
Vista:

Almacenar una consulta en un array

Publicado por Desco (9 intervenciones) el 06/03/2006 11:12:35
Hola.

tengo la TABLA

e1 char
e2 char
.
.
e10 char

y el siguiente codigo en PL/SQL

type t_etiquetas is array(10) of char;

declare
etiquetas t_etiquetas;
begin
select e1, e2, ... , e10 into etiquetas from TABLA;
end;

ME parece el siguiente error..

PLS-00642: tipos de recopilación local no permitidos en sentencias SQL

Hay alguna forma de incluir n campos de una tabla con el mismo tipo a un array de longitud n?? Me interesa tenerlo en un array ya que luego los accesos son secuenciales por posicion..

Gracias.
Desco.
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:Almacenar una consulta en un array

Publicado por Dave (16 intervenciones) el 08/03/2006 23:12:07
Hola,

intenta haciendo la siguiente sentencia en el SELECT:

Select e1, e2, ..., en BULK COLLECT INTO etiquetas from TABLA, por lo menos con esta sentencia no te saca error en ejecucion del bloque PL/SQL

Creo que en tu caso es mejor que utilices tipos tablas en memoria de Oracle:

TYPE tyTable IS TABLE OF TABLA%ROWTYPE INDEX BY BINARY_INTEGER;

y para bajar la informacion del SELECT a la tabla en memoria, debes usar la misma sentencia SELECT .. BULK COLLECT INTO ....

Averigua sobre esas sentencias BULK COLLECT INTO o IS TABLE OF.

Exitos.
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:Almacenar una consulta en un array

Publicado por Desco (9 intervenciones) el 09/03/2006 09:29:56
Dammian,

ahora tengo otro problema y es que lo que yo consideraba e1, e2, etc.. no es una columna, sino la consecuencia de dos de ellas concatenadas y el error que aparece es "PL/SQL: ORA-00947: no hay suficientes valores".
Al final lo he almacenado en una estructura record...

Gracias.
Desco.!
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