-- packages/acs-service-contract/sql/oracle/upgrade/upgrade-4.5-4.5.1.sql -- -- @author Vinod Kurup (vinod@kurup.com) -- @creation_date 2002-08-14 -- -- $Id: upgrade-4.5.1-4.6.sql,v 1.3 2013/03/30 17:40:53 gustafn Exp $ -- UPGRADE ISSUE #1 -- add more verbose error message -- added -- old define_function_args('acs_sc_binding__new','contract_id,impl_id') -- new select define_function_args('acs_sc_binding__new','contract_id,impl_id'); -- -- procedure acs_sc_binding__new/2 -- CREATE OR REPLACE FUNCTION acs_sc_binding__new( p_contract_id integer, p_impl_id integer ) RETURNS integer AS $$ DECLARE v_contract_name varchar; v_impl_name varchar; v_count integer; BEGIN v_contract_name := acs_sc_contract__get_name(p_contract_id); v_impl_name := acs_sc_impl__get_name(p_impl_id); select count(*) into v_count from acs_sc_operations where contract_id = p_contract_id and operation_name not in (select impl_operation_name from acs_sc_impl_aliases where impl_contract_name = v_contract_name and impl_id = p_impl_id); if v_count > 0 then raise exception 'Binding of % to % failed since certain operations are not implemented.', v_contract_name, v_impl_name; end if; insert into acs_sc_bindings ( contract_id, impl_id ) values ( p_contract_id, p_impl_id ); return 0; END; $$ LANGUAGE plpgsql;