Hi ,here is another issue now. If you see the last value in the source table it considers commas as separate columns and gives errors. Can you please help?
Function:
CREATE OR REPLACE FUNCTION call_insert_info(
--info_array r_log_message[]
) RETURNS void AS $$
DECLARE
v_message r_log_message[];
OLDVALUE1 varchar(4000);
BEGIN
OLDVALUE1=current_user;
--v_message:='{"(COLUMN1,%OLDVALUE1,NEWVALUE1)","(COLUMN2,OLDVALUE2,NEWVALUE2)","(COLUMN3,OLDVALUE3,NEWVALUE3)","(COLUMN4,OLDVALUE4,NEWVALUE4)"}';
v_message:= array(select '(' || columname || ',' || oldvalue::text || ',' || newvalue::text ||')' from testaditya2);
perform insert_info(v_message);
raise notice '%',v_message;
END;
$$ LANGUAGE plpgsql;
columname | oldvalue | newvalue
---------------+---------------------------------------+---------------------------------------
COLUMN1 | %OLDVALUE1 | NEWVALUE1
COLUMN2 | OLDVALUE2 | NEWVALUE2
COLUMN3 | OLDVALUE3 | NEWVALUE3
COLUMN4 | OLDVALUE4 | NEWVALUE4
custom_config | {"page" : 0,"size: : 20 } | {"page" : 1,"size: : 21 }
custom_config | {"page" : 0,"size": : 23 } | {"page" : 1,"size": : 22 }
custom_config | {"page" : 0,"size": : 23, "time" :1 } | {"page" : 1,"size": : 22,"time" : 1 }
Error:
postgres=# select call_insert_info();
ERROR: malformed record literal: "(custom_config,{"page" : 0,"size": : 23 },{"page" : 1,"size": : 22 })"
DETAIL: Too many columns.
CONTEXT: PL/pgSQL function call_insert_info() line 8 at assignment
Regards,
AD.