jarrodhroberson
1/4/2018 - 4:35 PM

UUID UDT

UUID

CREATE TYPE UUID AS OBJECT
(
  bytes RAW(16),

  MEMBER FUNCTION
    as_hex RETURN CHAR
);

CREATE TYPE BODY UUID AS
  MEMBER FUNCTION as_hex RETURN CHAR IS
    BEGIN
      RETURN REGEXP_REPLACE(SELF.bytes, '([0-9A-F]{8})?([0-9A-F]{4})?([0-9A-F]{4})?([0-9A-F]{4})?([0-9A-F]{12})', '\1-\2-\3-\4-\5');
    END;
END;