Помогите написть функцию !!!

 
0
 
Oracle
ava
Marriage | 25.01.2005, 16:48
Есть Таблица.

1-я колонка FK_ID(тип Number)
2-я колонка FT_TIME(тип Varchar2)


1 | 08.30
2 | 08.20
3 | 08.00
4 | 08.10
5 | 08.40


Функция получает FK_ID и возвращает следующее время.

Get_next_time(3) вернет 08.10
Get_next_time(4) вернет 08.20

Через Цикл Fetch - нельзя ...
Очень долго.
Comments (3)
ava
igon | 26.01.2005, 04:35 #
Если функция должна возвращать одно значение, зачем крутить цикл в курсоре?

create or replace function getNextTime(ID Number)
return Varchar2
is
result Varchar2(?)
Begin
Begin
Select A.FT_TIME
Into result
From MyTable A
Where A.FT_ID = ID+1;
Exception
when Others Then
-- Обработка ошибки, например, если FT_ID содержит не уникальные значения и запрос вернет больше одной строки
End;
Return result;
End;

В постановке задачи не очепятка? При возрастании ID время может уменьшаться? Если ошибки нет, тогда вложенный Select
Цитата
  Select min(A.FT_TIME)
  Into result
  From MyTable A
  Where A.FT_TIME > ( Select B.FT_TIME
  From MyTable B
  Where B.FT_ID = ID)

Если Varchar01 > Varchar02, это не значит, что и хронологически неравенство обязательно будет соблюдаться smile
ava
Marriage | 26.01.2005, 09:50 #
Опечатки нет.
Цитата


Если Varchar01 > Varchar02, это не значит, что и хронологически неравенство обязательно будет соблюдаться


Попробую решить эту проблему с помощью TO_DATE.....
igon
Спасибки, щас попробую ...
ava
Marriage | 26.01.2005, 10:58 #
Все сделал ,
igon спасибо ...
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Marriage   igon
advanced
Submit