The call would be (with two array elements):
SELECT insert_info('{"(Arjay,myEmail@email.com,1234567)"
,"(Bjay,my2Email@email.com,2234567)"}'::info[]);
Or with ARRAY constructor:
SELECT insert_info((ARRAY['(Arjay,myEmail@email.com,1234567)'
,'(Bjay,my2Email@email.com,2234567)'])::info[]);
Or:
SELECT insert_info( ARRAY['(Arjay,myEmail@email.com,1234567)'::info
,'(Bjay,my2Email@email.com,2234567)']);
But the whole operation can be more efficient with plain SQL using unnest()
:
INSERT INTO info(name, email_add,contact_no)
SELECT * FROM unnest('{"(Arjay,myEmail@email.com,1234567)"
, "(Bjay,my2Email@email.com,2234567)"}'::info[]);
You can wrap it into an SQL function if you need it as function call ...
CREATE OR REPLACE FUNCTION insert_info(info_array info[])
RETURNS void
LANGUAGE sql AS
$func$
INSERT INTO info(name, email_add,contact_no)
SELECT * FROM unnest($1)
$func$;
Same call.
Your original function would return after the first array element, btw.