Guest User

Untitled

a guest
Jun 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. CREATE OR REPLACE TYPE BODY geomean_impl IS
  2. STATIC FUNCTION ODCIAggregateInitialize( sctx IN OUT geomean_impl )
  3. RETURN NUMBER IS
  4. BEGIN
  5. sctx := geomean_impl( 0, 0 );
  6. RETURN odciconst.success;
  7. END;
  8.  
  9. MEMBER FUNCTION ODCIAggregateIterate( self IN OUT geomean_impl, value IN NUMBER )
  10. RETURN NUMBER IS
  11. BEGIN
  12. v_ln_sum := v_ln_sum + ln( value );
  13. v_num_items := v_num_items + 1;
  14.  
  15. RETURN odciconst.success;
  16. END;
  17.  
  18. MEMBER FUNCTION ODCIAggregateTerminate( self IN geomean_impl, returnvalue OUT NUMBER, flags IN NUMBER )
  19. RETURN NUMBER IS
  20. BEGIN
  21. returnvalue := exp( v_ln_sum / v_num_items );
  22.  
  23. RETURN odciconst.success;
  24. END;
  25.  
  26. MEMBER FUNCTION ODCIAggregateMerge( self IN OUT geomean_impl, ctx2 IN geomean_impl )
  27. RETURN NUMBER IS
  28. BEGIN
  29. self.v_ln_sum := self.v_ln_sum + ctx2.v_ln_sum;
  30. self.v_num_items := self.v_num_items + ctx2.v_num_items;
  31.  
  32. RETURN odciconst.success;
  33. END;
  34. END;
  35. /
Add Comment
Please, Sign In to add comment