Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Временные таблицы - кто - нибудь пользуется?
|
|||
|---|---|---|---|
|
#18+
Что-то я не догоняю логику работы с сабжем... Грабли классические и здесь уже вроде описанные, но полного решения так и не нашёл. В процедуре пишем 1. create temporary table tst ... on commit drop 2. select * from tst .... Не работает при повторном вызове :( - Relation with OID 12345 отсутствует в базе. В процедуре пишем 1.execute 'create temporary table tst ...' 2. execute 'select * from tst ....' - Работает :) Ясно, что на момент компиляции имена транслируются в OID и сохраняются в недрах ядра. А как тогда делать select into my_var any_field from tst? Или for rec in select * from tst loop? Если этого вообще нельзя делать, то зачем тогда временные таблицы? Может кто -то умеет их правильно применять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2005, 21:20 |
|
||
|
Временные таблицы - кто - нибудь пользуется?
|
|||
|---|---|---|---|
|
#18+
mefmskЧто-то я не догоняю логику работы с сабжем... Грабли классические и здесь уже вроде описанные, но полного решения так и не нашёл. В процедуре пишем 1. create temporary table tst ... on commit drop 2. select * from tst .... Не работает при повторном вызове :( - Relation with OID 12345 отсутствует в базе. В процедуре пишем 1.execute 'create temporary table tst ...' 2. execute 'select * from tst ....' - Работает :) Ясно, что на момент компиляции имена транслируются в OID и сохраняются в недрах ядра. А как тогда делать select into my_var any_field from tst? Или for rec in select * from tst loop? Если этого вообще нельзя делать, то зачем тогда временные таблицы? Может кто -то умеет их правильно применять? Я, например, решаю задачу ведения лога через времянку. Т.е. сразу после подсоединения создаю временную таблицу,заношу туда ID пользователя, а потом ею пользуюсь во всех триггерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 10:02 |
|
||
|
Временные таблицы - кто - нибудь пользуется?
|
|||
|---|---|---|---|
|
#18+
Andrey Daeron Я, например, решаю задачу ведения лога через времянку. Т.е. сразу после подсоединения создаю временную таблицу,заношу туда ID пользователя, а потом ею пользуюсь во всех триггерах. Правильно, у меня тоже примерно так и работает, только описанная ошибка возникает, если ф-ю вызвать дважды внутри одного коннекта: Connect exec Function_test exec Function_test Finish Если делать Connect exec Function_test Finish Connect exec Function_test Finish То всё прокатывает, но каждый раз переконнекчиваться как-то неправильно ИМХО... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 11:41 |
|
||
|
Временные таблицы - кто - нибудь пользуется?
|
|||
|---|---|---|---|
|
#18+
Эта баго-фича обсуждалась уже. Фишка в том, что в процедуре вместо имён юзаются ОИДы. Когда создаётся временная таблица, ей присваивается ОИД, и он используется в операторах. Когда процедура вызывается второй раз, то юзается старый план, а там естесно старый ОИД, тот которого уже нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 12:16 |
|
||
|
Временные таблицы - кто - нибудь пользуется?
|
|||
|---|---|---|---|
|
#18+
Так это можно обойти как - то? Например, план насильно обновить? Это же явный баг по - моему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 14:24 |
|
||
|
Временные таблицы - кто - нибудь пользуется?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2005, 14:39 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=2006967]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
7ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 363ms |

| 0 / 0 |
