а массивы можно использовать не только в таблицах, а просто как переменные в pl/sql?

MaximZ
Дата: 01.12.2003 19:49:39
в функции нужно использовать массив. Но что то не получается. Переменная созадется, но при попытке вызова ругается на квадратные скобки.
CREATE OR REPLACE FUNCTION public.p_proba_10(int)
RETURNS int AS
'
DECLARE
pv_id ALIAS FOR $1;
ic int;
hist int[100];
BEGIN
ic = 0;
WHILE ic<20
LOOP
hist[ic] = ic+1;
ic = ic +1;
END LOOP;
RETURN 10;
END;
'
LANGUAGE 'plpgsql';

select p_proba_10(1);

WARNING: plpgsql: ERROR during compile of p_proba_10 near line 9

ERROR: parse error at or near "["
Sad Spirit
Дата: 02.12.2003 11:42:14
В свежем выпуске General Bits как раз есть пример:
http://www.varlena.com/varlena/GeneralBits/52.php
MaximZ
Дата: 02.12.2003 15:50:30
Блин, опять все через любимое российское место.
И почему нельзя простореализовать нормальную работу с массивами.
_Mishanya_
Дата: 19.01.2006 13:12:52
присвоение - ":=", а не "="
_Mishanya_
Дата: 19.01.2006 13:39:45
By default PostgreSQL uses the one-based (не с нуля, а с единицы) numbering convention for arrays, that is, an array of n elements starts with array[1] and ends with array[n]
_Mishanya_
Дата: 19.01.2006 13:50:43
declare
  pv_id alias for $1;
  -- 
  ic    int;
  hist  int[];                     
begin
  ic := 1;
  while (ic <= 20) loop
    hist[ic] := ic;             
    ic := ic + 1;
  end loop;
  --
  return 10;
end; 

- чё-то типа того
_Mishanya_
Дата: 19.01.2006 13:54:31
только не int и int[], а integer и integer[] соответсвенно