Thanks a lot Jayadevan. I was unaware of temp table kind of functionality exists in postgres. Now i updated functions as follows- I have one question - if is there any better way of checking if temporary table already created for the given session package(other than one i used to capture as exception). ###################################################################
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Package specific CREATE OR REPLACE FUNCTION "MM".Pack_Spec_THMS_Pack() RETURNS numeric AS $BODY$ DECLARE v_output numeric := 1 ; v_SessionID character varying(500) ; v_packName character varying(50) := 'THMS_Pack'; v_cnt numeric := 0 ; v_tmp boolean := false ; BEGIN begin create temporary table Tmp_Package_Variable_Table ( Var_Name character varying(50), Var_Value character varying(50), Var_DataType character varying(50), Var_Type character varying(50)--public or private ); exception when others then return 0 ; end ; -- insert global variables for package with their initial values -- Glbl_Var_number insert into Tmp_Package_Variable_Table ( Var_Name, Var_Value, Var_DataType, Var_Type ) values ( 'Glbl_Var_number', '10', 'numeric', 'public' ); -- Glbl_Var_char insert into Tmp_Package_Variable_Table ( Var_Name, Var_Value, Var_DataType, Var_Type ) values ( 'Glbl_Var_char', null, 'character varying', 'public' ); -- insert private variables for package with their initial values -- Locl_Var_number insert into Tmp_Package_Variable_Table ( Var_Name, Var_Value, Var_DataType, Var_Type ) values ( 'Locl_Var_number', '20', 'numeric', 'private' ); -- Locl_Var_char insert into Tmp_Package_Variable_Table ( Var_Name, Var_Value, Var_DataType, Var_Type ) values ( 'Locl_Var_char', 'localpack', 'character varying', 'private' ); RETURN v_output; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CREATE OR REPLACE FUNCTION "MM".GetPublicVar_THMS_Pack( v_VariableName character varying ) RETURNS character varying AS $BODY$ DECLARE v_output character varying(500) ; v_cnt numeric := 0; v_tmp numeric := 0; BEGIN --set package initializtion v_tmp := "MM".Pack_Spec_THMS_Pack(); select count(1) into v_cnt from Tmp_Package_Variable_Table where Var_Name = v_VariableName and Var_Type = 'public' ; if v_cnt>0 then select Var_Value into v_output from Tmp_Package_Variable_Table where Var_Name = v_VariableName and Var_Type = 'public' ; else v_output := null; end if; RETURN v_output; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CREATE OR REPLACE FUNCTION "MM".SetPublicVar_THMS_Pack( v_VariableName character varying, v_VariableValue character varying) RETURNS numeric AS $BODY$ DECLARE v_output numeric := 1; v_cnt numeric := 0; v_tmp numeric := 0 ; BEGIN --set package initializtion v_tmp := "MM".Pack_Spec_THMS_Pack(); update Tmp_Package_Variable_Table set Var_Value = v_VariableValue where Var_Name = v_VariableName and Var_Type = 'public' ; RETURN v_output; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE ------------------------------------------------------------------------------ #################################################################### Thanks again. Venkat =====-----=====-----===== Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you