powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание таблицы в функции с именем из переменной
3 сообщений из 3, страница 1 из 1
Создание таблицы в функции с именем из переменной
    #40135881
Люди добрый, подскажите, пожалуйста, не могу понять в чем проблема. Создаю таблицу в функции, имя таблицы беру из переменной, но при выполнении получаю ошибку, хотя через PGadmin таблицу с таким именем создаю без проблем

Текст функции
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
BEGIN

table_id := v_data_json::json->>'order_id';
sql_text := 'Create TABLE '||table_id||' AS
				Select * 
				from 
					jsonb_to_record('''||v_data_json||''') AS v_goods_id(expireddate text, order_id text)
				CROSS JOIN
					jsonb_array_elements_text('''||v_array_json||''') AS v_marking_codes';
EXECUTE sql_text;
Return true;
END



Текст запроса
Код: plsql
1.
2.
3.
select mt_insert_marking_codes('{"expireddate":123, "order_id": "4f847231-7190-4cc7-9fba-ce6c7e9f167f"}',
							   '["123","312"]'
)



Текст ошибки
ERROR: syntax error at or near "4"
LINE 1: Create TABLE 4f847231-7190-4cc7-9fba-ce6c7e9f167f AS
^
QUERY: Create TABLE 4f847231-7190-4cc7-9fba-ce6c7e9f167f AS
Select *
from
jsonb_to_record('{"order_id": "4f847231-7190-4cc7-9fba-ce6c7e9f167f", "expireddate": 123}') AS v_goods_id(expireddate text, order_id text)
CROSS JOIN
jsonb_array_elements_text('["123", "312"]') AS v_marking_codes
CONTEXT: PL/pgSQL function mt_insert_marking_codes(jsonb,jsonb) line 14 at EXECUTE
SQL state: 42601
...
Рейтинг: 0 / 0
Создание таблицы в функции с именем из переменной
    #40135891
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Моторико,

Если имя таблицы начинается с ЧИСЛА то это имя надо в двойные кавычки заключать:

Код: sql
1.
2.
3.
4.
5.
6.
postgres=# create table 4a (id serial);
ERROR:  syntax error at or near "4"
LINE 1: create table 4a (id serial);
                     ^
postgres=# create table "4a" (id serial);
CREATE TABLE



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Создание таблицы в функции с именем из переменной
    #40135923
Спасибо! )))) Работает
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание таблицы в функции с именем из переменной
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (7): Анонимы (6), Yandex Bot
x
x
Закрыть


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