I have created a json variable VDN which is like so
{"80001": ["6", "9"], "80002": ["2", "6", "10"], "80004": ["4", "10", "8"]}
I have created a table in which the keys and values separate in two different columns as Varchar.
drop function if exists aa_Dev.VDN();
CREATE OR REPLACE FUNCTION aa_dev.VDN()
RETURNS VOID AS
$$
begin
DROP TABLE IF EXISTS aa_dev.sdg_vdn;
CREATE TABLE IF NOT EXISTS aa_dev.sdg_vdn (
VDN VARCHAR,
skills VARCHAR
);
INSERT INTO aa_dev.sdg_vdn(VDN, skills)
select t.*
from aa_dev.sdg_metadata m
cross join json_each_text(m.VDN) as t(VDN, "values");
end
$$
LANGUAGE plpgsql;
So instead of varchar the data types I want should be now
CREATE TABLE IF NOT EXISTS aa_dev.sdg_vdn (
VDN INT,
skills INT[]
);
How can I do this in PostgreSQL? I have tried using json_populate_record instead of json_each_text as it can return any data type but that did not work either.