Quiero llenar una matriz desde un cursor:
OPEN cursorbaja FOR
SELECT n0101numreg, c0101anio, c0101periodo, c0101codtrib, c0101codfase, c0101codconcepto,
n0101cargoinsoluto-n0101abonoinsoluto+n0101altainsoluto-n0101bajainsoluto insoluto,
n0101cargoreajuste-n0101abonoreajuste+n0101altareajuste-n0101bajareajuste reajuste,
n0101cargointeres-n0101abonointeres+n0101altainteres-n0101bajainteres interes
FROM "t0101Deudas"
WHERE c0101codcont = incodcont and c0101anio = inanio and c0101codtrib = '0001' and c0101codconcepto = '01'
and c0101estadodeu <> 'C' and b0101estadoreg = true;
vnum:=0;
LOOP
FETCH cursorbaja INTO vnumreg, vanio, vperiodo, vcodtrib, vcodfase, vcodconcepto,
vinsoluto, vreajuste, vinteres;
EXIT WHEN NOT FOUND;
vnum := vnum+1;
varreglobaja[vnum][1] := vnumreg::text;
varreglobaja[vnum][2] := '0'; varreglobaja[vnum][3] := '0'; varreglobaja[vnum][4] := '0';
varreglobaja[vnum][5] := '0'; varreglobaja[vnum][6] := '0';
varreglobaja[vnum][7] := vinsoluto::text; varreglobaja[vnum][8] := vreajuste::text; varreglobaja[vnum][9] := '0';
varreglobaja[vnum][10] := vinteres::text; varreglobaja[vnum][11] := '0';
varreglobaja[vnum][12] := vanio; varreglobaja[vnum][13] := vperiodo; varreglobaja[vnum][14] := vcodtrib;
varreglobaja[vnum][15] := ''; varreglobaja[vnum][16] := ''; varreglobaja[vnum][17] := vcodfase;
varreglobaja[vnum][18] := vcodconcepto; varreglobaja[vnum][19] := 'B';
END LOOP;
CLOSE cursorbaja;
Pero me sale el Error: ERROR: los subíndices de arrays están fuera de rango
He leido en un foro que hay que iniciar la matriz, pero eso servia para una matiz de una fila, en mi caso la matriz es dinamica, es decir no se cuantas filas va a tener.
La solucion que habian planteado era esta:
aruc integer[][] = array[[0,0,0,0,0,0,0,0,0,0,0]]; sirve para una fila
Pero, como les dije en mi caso no sirve, porque no se cuantas filas va a tener la matriz.
Ojala puedan ayudarme.