How to use Array in Array of Json

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

How to use Array in Array of Json

Monalee Bhandge-2
Dear Friends,
My function definition is as:

CREATE OR REPLACE FUNCTION schema1.samplefun1(
    vin_comp_cd smallint,
    vin_div_cd smallint,
    vin_loc_cd smallint[],
    vin_bt_cd integer[],
  )

Here instead of passing parameter I want to just send a single i/p in Json[].

My problem is how to pass array in Json[] variable. And how to use in code.


Thanking You!
Monalee
Database Lead Engineer.
Reply | Threaded
Open this post in threaded view
|

Re: How to use Array in Array of Json

Steve Midgley-3


On Mon, Nov 25, 2019 at 4:09 AM Monalee Bhandge <[hidden email]> wrote:
Dear Friends,
My function definition is as:

CREATE OR REPLACE FUNCTION schema1.samplefun1(
    vin_comp_cd smallint,
    vin_div_cd smallint,
    vin_loc_cd smallint[],
    vin_bt_cd integer[],
  )

Here instead of passing parameter I want to just send a single i/p in Json[].

My problem is how to pass array in Json[] variable. And how to use in code.


I believe you want a json conversion function. The entire list is here: https://www.postgresql.org/docs/current/functions-json.html

I'm guessing that the following function would be very useful to take a single input json structure and convert it for insertion as single record in a table: json_populate_record 

I hope that is helpful?
Steve
Reply | Threaded
Open this post in threaded view
|

RE: How to use Array in Array of Json

2.andriychuk
In reply to this post by Monalee Bhandge-2

Hi Monalee,

 

You can just use a json/jsonb variable. Content should be looking like this:

 

[

{“vin_comp_cd”: 1, “vin_div_cd”:11, “vin_array”: [{“vin_loc_cd”: 33, “vin_bt_cd”: 44}] },

{“vin_comp_cd”: N, “vin_div_cd”:NN, “vin_array”: [{“vin_loc_cd”: AA, “vin_bt_cd”: BB}] }

 

]

 

Or if “vin_loc_cd” and “vin_bt_cd” can be independent arrays if they are independent.

 

Best,

Igor

 

From: Monalee Bhandge <[hidden email]>
Sent: Monday, November 25, 2019 4:02 AM
To: [hidden email]
Subject: How to use Array in Array of Json

 

Dear Friends,

My function definition is as:

 

CREATE OR REPLACE FUNCTION schema1.samplefun1(

    vin_comp_cd smallint,

    vin_div_cd smallint,

    vin_loc_cd smallint[],

    vin_bt_cd integer[],

  )

 

Here instead of passing parameter I want to just send a single i/p in Json[].

 

My problem is how to pass array in Json[] variable. And how to use in code.

 

 

Thanking You!

Monalee

Database Lead Engineer.

Reply | Threaded
Open this post in threaded view
|

Re: How to use Array in Array of Json

Monalee Bhandge-2
Dear Friends,
Thanks for your email. But 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.



On Mon, Nov 25, 2019 at 9:44 PM <[hidden email]> wrote:

Hi Monalee,

 

You can just use a json/jsonb variable. Content should be looking like this:

 

[

{“vin_comp_cd”: 1, “vin_div_cd”:11, “vin_array”: [{“vin_loc_cd”: 33, “vin_bt_cd”: 44}] },

{“vin_comp_cd”: N, “vin_div_cd”:NN, “vin_array”: [{“vin_loc_cd”: AA, “vin_bt_cd”: BB}] }

 

]

 

Or if “vin_loc_cd” and “vin_bt_cd” can be independent arrays if they are independent.

 

Best,

Igor

 

From: Monalee Bhandge <[hidden email]>
Sent: Monday, November 25, 2019 4:02 AM
To: [hidden email]
Subject: How to use Array in Array of Json

 

Dear Friends,

My function definition is as:

 

CREATE OR REPLACE FUNCTION schema1.samplefun1(

    vin_comp_cd smallint,

    vin_div_cd smallint,

    vin_loc_cd smallint[],

    vin_bt_cd integer[],

  )

 

Here instead of passing parameter I want to just send a single i/p in Json[].

 

My problem is how to pass array in Json[] variable. And how to use in code.

 

 

Thanking You!

Monalee

Database Lead Engineer.