存储过程里的二维数组

想在POSTGRESQL里用二维数组,怎么也不行,求救!
一个简单的二维数据,怎么也没办法通过:

declare
  ARR  integer [][];

begin
  for i    in 1..10     loop      
       for  j    in 1..3     loop
                 arr[i][j]   := i * j;  
       end    loop;
   end     loop;

   for   i   in 1..10 loop      
       for  j    in 1..3 loop
               raise notice ' %     ',    arr[i][j] ;      
       end     loop;
   end     loop;

end;

作者: tony_trh   发布时间: 2011-02-27

参考一下:
http://topic.csdn.net/u/20101015 ... e-22d0eee98a06.html

作者: trainee   发布时间: 2011-02-28

第一种写法是正确的
但postgresql数组要先扩冲,再赋值,因为它的长度不是固定, 否则会出现下标引用错误。

比如:一个空的数组site[][]
你要给它增一列,先扩充site:=site||array[array['','']]
再赋值
site[1][1]='ccc'
site[1][2]='ddd'

或者直接扩充赋值site:=site||array[array['ccc','ddd']]

作者: renxiao2003   发布时间: 2011-02-28

回复 trainee


    需要注册后才能看到。还好我有帐户,所以给拷贝过来了。像这样的内容建议你以后拷贝过来,然后给上链接。呵呵。

作者: renxiao2003   发布时间: 2011-02-28