Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Временные таблицы
|
|||
|---|---|---|---|
|
#18+
В процедуре используются временные таблицы при первом запуске всё нормально работает при последующих - ошибка если закрыть сессию и открыть её заново опять первый запуск - нормально далее опять ошибка создаётся таблица внутри процедуры: CREATE TEMPORARY TABLE no_enough_qty (goods_id INT4) ON COMMIT DROP; после выполнения всех манипуляций с ней она удаляется: DROP TABLE no_enough_qty; вот сопсна как всё происходит: storage_db=# SELECT __proc_add_operation_outgoing(2,4,1,ARRAY[10,11],ARRAY[1,1],ARRAY[220,240],ARRAY[-1,-1]); __proc_add_operation_outgoing ------------------------------- {0} (1 запись) storage_db=# SELECT __proc_add_operation_outgoing(2,4,1,ARRAY[10,11],ARRAY[1,1],ARRAY[220,240],ARRAY[-1,-1]); ERROR: relation with OID 27112 does not exist КОНТЕКСТ: SQL statement "INSERT INTO no_enough_qty (goods_id) VALUES ( $1 [ $2 ])" PL/pgSQL function "__proc_add_operation_outgoing" line 38 at SQL statement storage_db=# пробовал и так: BEGIN; SELECT __proc_add_operation_outgoing(2,4,1,ARRAY[10,11],ARRAY[1,1],ARRAY[220,240],ARRAY[-1,-1]); COMMIT; результат такойже подскажите плиз как побороть это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 23:40 |
|
||
|
Временные таблицы
|
|||
|---|---|---|---|
|
#18+
Работать с временными таблицами надо через EXECUTE. Процедура при первом выполнении "компилируется" и при следующем вызове происходит обращение к несуществующему объекту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 00:55 |
|
||
|
Временные таблицы
|
|||
|---|---|---|---|
|
#18+
ага сенкс уже разобрался )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 09:52 |
|
||
|
Временные таблицы
|
|||
|---|---|---|---|
|
#18+
Sad SpiritРаботать с временными таблицами надо через EXECUTE. Процедура при первом выполнении "компилируется" и при следующем вызове происходит обращение к несуществующему объекту. у меня такое было не только с времянками, но и с первичным ключом. (в процедуре было DROP PKey ..... CREATE ... PKey. Криэйт сразу пришлось вешать на EXECUTE (процедура не хотела даже компилироваться как SQL проца - ругалась на невозможность создания второго п-кея - пришлось перейти на plpgSQL и EXECUTE). А DROP пришлось повесить на EXECUTE после первого запуска (PKey тоже был распознан как OID, который после первого пуска изменился). Другие констрайнты (в частности ф-кеи и индексы) передаются (в откомпиленную процедуру) по именам. ЗЫ : Кстати, если во времянке не создаете индексов и не пересчитываете ее кусочно и многократно, проще вместо времянки вертать из [STABLE] функции SETOF , и вязаться на него как на таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2005, 10:22 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=53&tid=2007478]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 354ms |

| 0 / 0 |
