select define_function_args('apm__set_global_value','package_key,parameter_name,attr_value');
--
-- procedure apm__set_global_value/3
--
CREATE OR REPLACE FUNCTION apm__set_global_value(
set_value__package_key varchar,
set_value__parameter_name varchar,
set_value__attr_value varchar
) RETURNS integer AS $$
DECLARE
v_parameter_id apm_parameter_values.parameter_id%TYPE;
v_value_id apm_parameter_values.value_id%TYPE;
BEGIN
v_parameter_id := apm__id_for_name (set_value__package_key, set_value__parameter_name);
-- Determine if the value exists
select value_id into v_value_id from apm_parameter_values
where parameter_id = v_parameter_id
and package_id is null;
update apm_parameter_values set attr_value = set_value__attr_value
where value_id = v_value_id;
update acs_objects set last_modified = now()
where object_id = v_value_id;
-- exception
if NOT FOUND
then
v_value_id := apm_parameter_value__new(
null,
null,
v_parameter_id,
set_value__attr_value
);
end if;
return 0;
END;
$$ LANGUAGE plpgsql;
--
-- legacy procedure apm__set_value/3
-- Replaced now by apm__set_global_value
---
CREATE OR REPLACE FUNCTION apm__set_value(
set_value__package_key varchar,
set_value__parameter_name varchar,
set_value__attr_value varchar
) RETURNS integer AS $$
BEGIN
return apm__set_global_value(set_value__package_key, set_value__parameter_name, set_value__attr_value);
END;
$$ LANGUAGE plpgsql;