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(&#39;<span style=3D"white-space:pre-wra=
p">		</span>{</div><div><span style=3D"white-space:pre-wrap">							</span>=
&quot;vin_loc_cd&quot; : [1, 2, 3],</div><div><span style=3D"white-space:pr=
e-wrap">							</span>&quot;vin_comp_cd&quot; : [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&#39;);</div><div>*/</div><=
div>DROP TABLE IF EXISTS my_loc ;</div><div><br></div><div>raise notice &#3=
9;ABC %&#39;, (SELECT d.value FROM json_each_text(vin_ip_param) AS d WHERE =
d.key=3D&#39;vin_loc_cd&#39; );</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&#39;vin_loc_cd&#39; )</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 &quot;vin_loc_cd&quot; =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--