JSON
Создадим собственный тип данных
CREATE TYPE p AS
(
t TEXT,
x INTEGER,
y INTEGER,
z INTEGER
);
Создадим таблицу для хранения информации
CREATE TABLE ppp
(
t TEXT,
x INTEGER,
y INTEGER,
z INTEGER
);
Заполним таблицу записями
INSERT INTO ppp (t,x,y,z) VALUES ('A', 1,2,3);
INSERT INTO ppp (t,x,y,z) VALUES ('B', 10,20,30);
INSERT INTO ppp (t,x,y,z) VALUES ('C', 100,200,300);
INSERT INTO ppp (t,x,y,z) VALUES ('D', 1000,2000,3000);
Выведем содержимое таблицы на экран
SELECT * FROM ppp ORDER BY t ASC;
Напишем функцию, которая возвращает содержимое таблицы в виде массива в формате JSON
CREATE OR REPLACE FUNCTION get_p_arr_json() RETURNS TEXT AS $$
DECLARE arr p ARRAY;
DECLARE element p;
DECLARE n INTEGER;
DECLARE s TEXT;
BEGIN
s = '[]';
n = 0;
FOR element IN SELECT * FROM ppp ORDER BY t ASC LOOP
n = n + 1;
arr[n] = element;
END LOOP;
IF (array_length(arr, 1) > 0) THEN
s = array_to_json(arr);
END IF;
RETURN s;
END;
$$ LANGUAGE plpgsql;
Вызываем написанную функцию
SELECT * FROM get_p_arr_json();
Last updated
Was this helpful?