How to use Array in Array of Json
Monalee Bhandge <[email protected]> Wed, 27 Nov 2019 17:41:08 +0530
| Newsgroups | gmane.comp.db.postgresql.sql |
|---|---|
| Message-ID | <CAErOoCeuzbjqEgCnSEr87tbHmUpXb7gXGsLiZKTtsmK-+QhOYw@mail.gmail.com> |
--000000000000883779059852fcc5
Content-Type: text/plain; charset="UTF-8"
Dear Friends,
here I am sharing my actual use case.
-- Function: public.sample_json_array(json)
-- DROP FUNCTION public.sample_json_array(json);
CREATE OR REPLACE FUNCTION public.sample_json_array(vin_ip_param json)
RETURNS void AS
$BODY$
Declare
v_text text;
arr integer[];
cnt integer := 1;
val varchar;
BEGIN
/*
SELECT sample_json_array(' {
"vin_loc_cd" : [1, 2, 3],
"vin_comp_cd" : [5, 6, 7]
}
');
*/
DROP TABLE IF EXISTS my_loc ;
raise notice 'ABC %', (SELECT d.value FROM json_each_text(vin_ip_param) AS
d WHERE d.key='vin_loc_cd' );
CREATE TEMP TABLE my_loc AS
(SELECT * from epps_admin.epps_location_mst lm
WHERE
*lm.loc_cd In *
* (SELECT d.value FROM json_each_text(vin_ip_param) AS d WHERE
d.key='vin_loc_cd' )*
* ); *
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public.sample_json_array(json)
OWNER TO epps_programmer;
*I WANT TO USE array variable "vin_loc_cd" from input vin_ip_param json in
my sql query.*
Please provide solution for this scenario.
--000000000000883779059852fcc5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div dir=3D"ltr"><div>Dear Friends,</div><div dir=3D"ltr">=
here I am sharing my actual use case.<div><br></div><div><br></div><div><di=
v>-- Function: public.sample_json_array(json)</div><div><br></div><div>-- D=
ROP FUNCTION public.sample_json_array(json);</div><div><br></div><div>CREAT=
E OR REPLACE FUNCTION public.sample_json_array(vin_ip_param json)</div><div=
>=C2=A0 RETURNS void AS</div><div>$BODY$</div><div>Declare=C2=A0</div><div>=
<span style=3D"white-space:pre-wrap"> </span>v_text text;</div><div><span s=
tyle=3D"white-space:pre-wrap"> </span>arr integer[];</div><div><span style=
=3D"white-space:pre-wrap"> </span>cnt integer :=3D 1;</div><div><span style=
=3D"white-space:pre-wrap"> </span>val varchar;</div><div>BEGIN</div><div>/*=
</div><div>SELECT sample_json_array('<span style=3D"white-space:pre-wra=
p"> </span>{</div><div><span style=3D"white-space:pre-wrap"> </span>=
"vin_loc_cd" : [1, 2, 3],</div><div><span style=3D"white-space:pr=
e-wrap"> </span>"vin_comp_cd" : [5, 6, 7]</div><div><span s=
tyle=3D"white-space:pre-wrap"> </span>}</div><div><span style=3D"white=
-space:pre-wrap"> </span>=C2=A0=C2=A0 =C2=A0');</div><div>*/</div><=
div>DROP TABLE IF EXISTS my_loc ;</div><div><br></div><div>raise notice =
9;ABC %', (SELECT d.value FROM json_each_text(vin_ip_param) AS d WHERE =
d.key=3D'vin_loc_cd' );</div><div><br></div><div>CREATE TEMP TABLE =
my_loc AS</div><div>(SELECT * from epps_admin.epps_location_mst lm</div><di=
v>WHERE=C2=A0</div><div>=C2=A0<b style=3D"background-color:rgb(255,255,0)">=
lm.loc_cd In=C2=A0</b></div><div><b style=3D"background-color:rgb(255,255,0=
)">=C2=A0(SELECT d.value FROM json_each_text(vin_ip_param) AS d WHERE d.key=
=3D'vin_loc_cd' )</b></div><div><b style=3D"background-color:rgb(25=
5,255,0)">=C2=A0);=C2=A0</b></div><div><br></div><div>END;</div><div><br></=
div><div>$BODY$</div><div>=C2=A0 LANGUAGE plpgsql VOLATILE</div><div>=C2=A0=
COST 100;</div><div>ALTER FUNCTION public.sample_json_array(json)</div><di=
v>=C2=A0 OWNER TO epps_programmer;</div></div><div><br></div><div><b>I WANT=
TO USE array variable "vin_loc_cd" =C2=A0from input vin_ip_param=
json in my sql query.</b></div><div><b><br></b></div><div><span style=3D"b=
ackground-color:rgb(255,153,0)">Please provide solution for this scenario.<=
/span></div><div class=3D"gmail-yj6qo gmail-ajU" style=3D"margin:2px 0px 0p=
x"></div></div></div></div>
--000000000000883779059852fcc5--