Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Условная выборка из курсора - как реализовать?
|
|||
|---|---|---|---|
|
#18+
Код - НЕПРАВИЛЬНЫЙ, но, думаю, идея понятна: нужно с каким-то числом сравнить разницу значений между текущей записью и предыдущей... Я не знаю, куда из курсора выбрать значения - временных нормальных таблиц в db2 я не нашел... :( Или тут можно написать суперзапрос, который это сделает в один прием? Я так не сумел... CREATE PROCEDURE SVC.TIMEHOLE(IN SECONDS INTEGER) READS SQL DATA RESULT SETS 1 LANGUAGE SQL BEGIN -- оказывается, в процедуре нельзя объявить временную таблицу :( DECLARE GLOBAL TEMPORARY TABLE mytime_temp (mytime timestamp) ON COMMIT preserve rows not logged; DECLARE mytime TIMESTAMP; DECLARE mytimeprev TIMESTAMP; DECLARE v_sqlstatus INTEGER DEFAULT 0; DECLARE ts CURSOR WITH RETURN FOR select datetimestamp from SVC.mdisk_performance group by datetimestamp order by datetimestamp desc FOR FETCH ONLY; DECLARE timescroll_ok CURSOR WITH RETURN FOR select mytime from SESSION.mytime_temp FOR FETCH ONLY; DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_sqlstatus = -1; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET v_sqlstatus = -1; SET mytimeprev = 0; --BEGIN TRANSACTION OPEN timescroll; FETCH timescroll INTO mytime; WHILE v_sqlstatus = 0 DO IF TSM.SECONDSDIFF(mytime - mytimeprev) > SECONDS AND mytimeprev > 0 THEN INSERT INTO SESSION.mytime_temp VALUES (mytime); END IF; SET v_sqlcode = SQLCODE; SET mytimeprev = mytime; FETCH timescroll INTO mytime; END WHILE; CLOSE timescroll; OPEN timescroll_ok; DROP TABLE mytime_temp; --END TRANSACTION; END; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 19:18 |
|
||
|
Условная выборка из курсора - как реализовать?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 09:51 |
|
||
|
Условная выборка из курсора - как реализовать?
|
|||
|---|---|---|---|
|
#18+
Ух ты, что можно вытворять! Спасибо в очередной раз, буду разбираться! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 12:33 |
|
||
|
Условная выборка из курсора - как реализовать?
|
|||
|---|---|---|---|
|
#18+
Почему нельзя объявлять временные таблицы? Можно и нужно. Скорее всего объявление должно идти после других DECLARE. Чтобы не отбрасывать её самому, не нужно писать ON COMMIT preserve rows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2008, 20:18 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35519484&tid=1603715]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 407ms |

| 0 / 0 |
