powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание временной таблицы в функции
10 сообщений из 10, страница 1 из 1
Создание временной таблицы в функции
    #39626226
ASukhov1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! У меня есть фрагмент функции:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
CREATE OR REPLACE FUNCTION "METR"."LoadAllCsmFromBuffer" ()
RETURNS VOID AS $$
DECLARE CUR_TIMESTAMP TIMESTAMP;
DECLARE cur RECORD;



BEGIN
CUR_TIMESTAMP = CURRENT_TIMESTAMP;

DROP TABLE IF EXISTS "METR".gbl_temp;
CREATE TEMP UNLOGGED TABLE "METR".gbl_temp(csm_code INTEGER);<--- ERROR:  syntax error at or near "UNLOGGED"

FOR cur IN (SELECT "ID" as v_id, "CSM_CODE" as v_csm 
			FROM "METR"."CSM_ATTR_BUFFER" 
			WHERE "MOVED_INTO_MAIN" IN (0,7) AND "PARENT_CODE" IS NOT NULL AND "DELETE_DATE" IS NOT NULL FOR READ ONLY) LOOP
			
    insert into "METR".gbl_temp (csm_code) values(cur.v_csm);
	select "METR"."LoadCsmFromBuffer"(v_id, v_csm);
END LOOP;
....
DROP TABLE IF EXISTS "METR".gbl_temp;
END;
$$ LANGUAGE plpgsql;



При её создании у меня возникает следующая ошибка:
Код: plaintext
1.
2.
3.
ERROR:  syntax error at or near "UNLOGGED"
LINE 12: CREATE TEMP UNLOGGED TABLE "METR".gbl_temp(csm_code INTEGER)...
                     ^
SQL-состояние: 42601
Вопрос:
Как мне её исправить?
P.S.
Без слова UNLOGGED время работает нормально.
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626228
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASukhov1986,

открываете мануал и смотрите, где должно быть слово unlogged: https://www.postgresql.org/docs/current/static/sql-createtable.html

Вы точно уверены, что вам вообще нужна временная табличка? Да ещё unlogged вместо temporary?
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626231
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А впрочем я слепой, не заметил create temp. temp всегда unlogged и есть. Поэтому слово вообще совершенно лишнее.
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626236
ASukhov1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij, а т.е. но там же или написано, как я понимаю:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE
CREATE [ [ GLOBAL или LOCAL ] { TEMPORARY или TEMP } или UNLOGGED ] TABLE
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626244
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASukhov1986Melkij, а т.е. но там же или написано, как я понимаю:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE
CREATE [ [ GLOBAL или LOCAL ] { TEMPORARY или TEMP } или UNLOGGED ] TABLE
Ну так или TEMP, или UNLOGGED (или ничего). Но не вместе.
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626250
ASukhov1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Лузанов,странная логика для "ИЛИ"
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626262
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASukhov1986Павел Лузанов,странная логика для "ИЛИ"

кто-то уже с утра на бровях.

не бережете вы себя.
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626292
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASukhov1986Павел Лузанов,странная логика для "ИЛИ"
"исключающее или", так правильнее будет.
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626311
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASukhov1986,

Что касается текста функции.
Я конечно не знаю, что скрывается за многоточием перед удалением временной таблицы.
Но есть ощущение (судя по циклу с построчной вставкой, вместо insert ... select), что здесь не нужна не только временная таблицы, но и функция. Можно попробовать обойтись чистым SQL.
...
Рейтинг: 0 / 0
Создание временной таблицы в функции
    #39626317
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ЛузановASukhov1986Павел Лузанов,странная логика для "ИЛИ"
"исключающее или", так правильнее будет.
"выбор" или альтернатива (список выбора, если множ-ый)

https://ru.wikipedia.org/wiki/Расширенная_форма_Бэкуса_—_Наура
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание временной таблицы в функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]