Получить следующую строку курсора в al oop без перемещения индекса курсора в PL / SQL - PullRequest
0 голосов
/ 09 июля 2020

Я работаю над процедурой Oracle, в которой мне нужно вычислить разницу во времени между двумя строками: время присутствует как столбец в курсоре. Для этого мне нужно будет навести l oop над курсором, получить текущую строку и следующую строку и вычислить разницу во времени. Как это сделать в l oop? Как мне получить курсор следующей строки, не перемещая курсор?

Ответы [ 2 ]

3 голосов
/ 09 июля 2020

Если время указано в столбце в курсоре, вы можете добавить еще один столбец в курсор и использовать lead для заполнения следующей строки Time следующим образом:

-- YOUR CURSOR QUERY EXAMPLE
SELECT COL1, TIME_COL FROM .....

--yOU NEED TO ADD ONE MORE COLUMN
SELECT COL1, TIME_COL, LEAD(TIME_COL) OVER (PARTITION BY ... ORDER BY ...) FROM ...

Вы можете узнать больше о LEAD из немного хороший источник

1 голос
/ 09 июля 2020

Проще использовать функции analyti c n lag (col) over (order by ...) или lead (col) over (order by ...)

...