Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как узнать сколько элементов в массиве? / 8 сообщений из 8, страница 1 из 1
20.07.2005, 00:39
    #33174820
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
Нужно в ХП пройтись по массиву.
...
Рейтинг: 0 / 0
20.07.2005, 07:44
    #33174920
ZemA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
вот посмотри
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
CREATE OR REPLACE FUNCTION delete_element("varchar", _varchar)
  RETURNS _varchar AS
'
declare
  i integer;
  j integer;
  dpos integer;
  epos integer;
  count integer;
  dims varchar;
  element ALIAS FOR $1;
  array_in ALIAS FOR $2;
  array_out varchar[];
  null_array constant varchar[] := array[\'\'];
begin
  dims := array_dims(array_in);     %af_src_comm_0 
  dpos := position(\':\' in dims)+1;  %af_src_comm_1
  epos := position(\']\' in dims);    %af_src_comm_2
  count := substring(dims from dpos for epos-dpos); %af_src_comm_3
  
  j := 0;
  array_out := null_array;
  FOR i IN 1..count LOOP
    if array_in[i] <> element then
      j := j+1;
      if j = 1 then
        array_out[j] := array_in[i];
      else
        array_out := array_append(array_out, array_in[i]);
      end if;
    end if;
  END LOOP;

  if array_out = null_array then
    array_out := null;
  end if;

  return array_out;
end;
'
  LANGUAGE 'plpgsql' VOLATILE;
...
Рейтинг: 0 / 0
20.07.2005, 08:25
    #33174939
нет_уж
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
ZemA
Ну и зря. Надо было Sarin'а в очередной раз послать документацию читать.
И кстати, в 8 версии спец функции для определения границ массива появились.
...
Рейтинг: 0 / 0
20.07.2005, 08:37
    #33174950
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
А у меня седьмая всё равно.
...
Рейтинг: 0 / 0
20.07.2005, 16:36
    #33176496
пепси
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
Перерыл доку на 8.0 но этой спец функции не нашёл :(

Может быть кто-нибудь ткнёт носом???
...
Рейтинг: 0 / 0
20.07.2005, 17:13
    #33176600
vfabr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
http://www.postgresql.org/docs/8.0/interactive/functions-array.html#ARRAY-FUNCTIONS-TABLE
...
Рейтинг: 0 / 0
20.07.2005, 23:37
    #33176983
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
а что такое: "varchar", _varchar в объявлении функции? Что делает _ перед varchar? Что значит "varchar"?
...
Рейтинг: 0 / 0
21.07.2005, 13:40
    #33177949
Meta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать сколько элементов в массиве?
Sarinа что такое: "varchar", _varchar в объявлении функции? Что делает _ перед varchar? Что значит "varchar"?
_varchar, вроде, аналог varchar[]
а об остальном можно почитать тут
http://www.postgresql.org/docs/7.4/interactive/datatype-character.html
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как узнать сколько элементов в массиве? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]