powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / не могу заполнить методом For i (select ...) loop
4 сообщений из 4, страница 1 из 1
не могу заполнить методом For i (select ...) loop
    #39735424
Yelibay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день,

Перешел с ORACLE в Postgresql.

Помогите пожалуйста, что я не так делаю?

написал цикл для заполнения данных с таблиц поочередно, но выдает ошибку

Код: sql
1.
2.
3.
ERROR:  query string argument of EXECUTE is null
CONTEXT:  PL/pgSQL function inline_code_block line 11 at EXECUTE
SQL-состояние: 22004



Скрипт
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
DO $$
DECLARE
    tables CURSOR FOR
        select "MEMNAME" 
			    from public.lib_mem_tables 
			   where "LIBNAME"='CLC_BUY'
			     and "MEMNAME" like 'ISP_RES_BUY%'
				 order by "MEMNAME";
BEGIN
    FOR i IN tables LOOP
		execute 'insert into clc_buy.isp_res_buy
				 select comcode,
						y,
						m,
						f,
						date,
						mater_mat_id,
						mat_name,
						purchase,
						purchase_cost,
						'||substr(i."MEMNAME",11,31)||',
						'||null||'
				   from '||i."MEMNAME"||' t';
    END LOOP;
END$$;
...
Рейтинг: 0 / 0
не могу заполнить методом For i (select ...) loop
    #39735427
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yelibay,

В постгресе, если конкатинируешь с помощью ||, и один из операндов null, то вся результирующая строка будет null.
Используй или concat, или concat_ws. или quote_nullable
...
Рейтинг: 0 / 0
не могу заполнить методом For i (select ...) loop
    #39735431
Yelibay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex__kK,

поменял NULL на 1.

Это он на грант ругается?

Код: sql
1.
2.
ERROR:  relation "clc_buy.isp_res_buy" does not exist
LINE 1: insert into clc_buy.isp_res_buy



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
DO $$
DECLARE
    tables CURSOR FOR
        select "MEMNAME" 
			    from public.lib_mem_tables 
			   where "LIBNAME"='CLC_BUY'
			     and "MEMNAME" like 'ISP_RES_BUY%'
				 order by "MEMNAME";
BEGIN
    FOR i IN tables LOOP
		execute 'insert into clc_buy.isp_res_buy
				 select comcode,
						y,
						m,
						f,
						date,
						mater_mat_id,
						mat_name,
						purchase,
						purchase_cost,
						'||substr(i."MEMNAME",11,31)||',
						'||1||'
				   from '||i."MEMNAME"||' t';
    END LOOP;
END$$;
...
Рейтинг: 0 / 0
не могу заполнить методом For i (select ...) loop
    #39735438
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yelibay,

Говорит что таблицу не нашел, а по какой причине, уж вам виднее.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / не могу заполнить методом For i (select ...) loop
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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