Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE TYPE BODY geomean_impl IS
- STATIC FUNCTION ODCIAggregateInitialize( sctx IN OUT geomean_impl )
- RETURN NUMBER IS
- BEGIN
- sctx := geomean_impl( 0, 0 );
- RETURN odciconst.success;
- END;
- MEMBER FUNCTION ODCIAggregateIterate( self IN OUT geomean_impl, value IN NUMBER )
- RETURN NUMBER IS
- BEGIN
- v_ln_sum := v_ln_sum + ln( value );
- v_num_items := v_num_items + 1;
- RETURN odciconst.success;
- END;
- MEMBER FUNCTION ODCIAggregateTerminate( self IN geomean_impl, returnvalue OUT NUMBER, flags IN NUMBER )
- RETURN NUMBER IS
- BEGIN
- returnvalue := exp( v_ln_sum / v_num_items );
- RETURN odciconst.success;
- END;
- MEMBER FUNCTION ODCIAggregateMerge( self IN OUT geomean_impl, ctx2 IN geomean_impl )
- RETURN NUMBER IS
- BEGIN
- self.v_ln_sum := self.v_ln_sum + ctx2.v_ln_sum;
- self.v_num_items := self.v_num_items + ctx2.v_num_items;
- RETURN odciconst.success;
- END;
- END;
- /
Add Comment
Please, Sign In to add comment