crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Значение, возвращаемое функцией
YarikRock
  опции профиля:
сообщение 15.12.2010, 20:00
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 15.12.2010
Пользователь №: 2269

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте, имею функцию, пробовал возращаемое значение table и собственного типа getSensorValues.
Возращает не так
time_t | value
--------+-------
105 | 117
2054 | 676 , а так

getsensorvalues
-----------------
(105,117)
(2054,676)

При вызове этой функции из программы результат выдает не как пары значений 105, 117, а как одну строку "(105,117)"
Подскажите где я ошибся, пожалуйста.

CREATE OR REPLACE FUNCTION getSensorValues(firstTime integer, lastTime integer, step integer, insensorid integer)
returns setof getSensorType as --table(otime_t integer, ovalue float8) as
$$
declare
firstTime integer := $1;
counter integer := 0;
localStep integer := $3/10 + 1;
getSens getSensorType;
occ record;
begin
  while firstTime < $2 + 1
  loop
  for occ in select time_t, value from sensors
  where sensorsid = $4 and time_t = (select min(time_t) from sensors
  where sensorsid = $4 and time_t >= (firstTime - (localStep/2) + (localStep*counter))
  and time_t < (firstTime + (localStep/2) + (localStep*counter)))
  loop
  getSens.otime_t := occ.time_t;
  getSens.ovalue := occ.value;
  return next getSens;
  end loop;
  firstTime := firstTime + $3;

  if (getSens.otime_t is NULL) then
    if (getSens.ovalue is NULL) then
      if (counter < 9) then
    firstTime := firstTime - $3;
    counter := counter + 1;
      end if;
    end if;
  end if;

  end loop;
return;
end;
$$
language 'plpgsql';

------------------------------------------------

create type getSensorType as
(
otime_t integer,
ovalue float8
);


Забыл написать, СУБД PostgreSQL, язык plpgsql.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 1)
xls
  опции профиля:
сообщение 31.1.2011, 17:28
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 6.9.2010
Пользователь №: 2013

Спасибо сказали: 7 раз(а)




Репутация:   2  


Цитата(YarikRock @ 15.12.2010, 20:00) *
Здравствуйте, имею функцию, пробовал возращаемое значение table и собственного типа getSensorValues.
Возращает не так

Попробуй выбрать из типа как в http://sqle.ru/index.php/PostgreSQL/Array/...y_Column_Select
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 17:41