powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача массива в функцию.
2 сообщений из 2, страница 1 из 1
Передача массива в функцию.
    #34744018
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есь таблица Т1 и таблица Т2

Т1 состоит из

id serial
date_add date
nazva varchar


T2
id int8
nazvanie_tovara varchar
kolvo int2
cena numeric(10,2)

помогите написать функцию на pl/pgSQL которая принимала в качесве параметров $1 nazva для Т1 и $2 массив стотоящий из [nazvanie_tovara, kolvo, cena]

т.е. при вызофе функции с передаными параметрами происходила вставка в Т1
далее получаем ИД для Т1 из последовательноти и в Т2 вносим значения массива
...
Рейтинг: 0 / 0
Передача массива в функцию.
    #34744605
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот методом тыка и втыкания в мануал сделал почти что то что хотел

Код: plaintext
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.
26.
27.
28.
29.
30.
CREATE OR REPLACE FUNCTION "ins4" (character varying, character varying[], integer[], numeric[]) RETURNS boolean AS 'DECLARE
newnode int4;
t2name varchar[];
kol int4[];
cen numeric[];
arrcolvo int4;
x int4;

BEGIN
insert into t1 (nazva) VALUES ($1);
SELECT last_value FROM t1_id_seq INTO newnode;

t2name := $2;
kol := $3;
cen := $4;
x := 1;
select array_upper(t2name, 1) into arrcolvo;

WHILE arrcolvo >= x LOOP
insert into t2 (id, dnazva, kolvo, cena) VALUES (newnode, t2name[x], kol[x], cen[x]);    
x := x + 1;
END LOOP;


RETURN 't';
END;' LANGUAGE "plpgsql"
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER

...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача массива в функцию.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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