CREATE OR REPLACE FUNCTION date_to_unix_ts (PDate IN date) 
   RETURN NUMBER 
   IS
    l_unix_ts number;
   BEGIN
    l_unix_ts := ( PDate - date '1970-01-01' ) * 60 * 60 * 24;
    RETURN l_unix_ts;
   END;
;;
CREATE OR REPLACE FUNCTION generis_sequence_uri_provider (modelUri IN Varchar2)
  RETURN VARCHAR2
  IS
    uri Varchar2(255);
    v_id NUMBER(10,0);
  pragma autonomous_transaction;
  BEGIN
    INSERT INTO sequence_uri_provider (uri_sequence) VALUES ('')
    RETURNING uri_sequence into v_id;
    SELECT modelUri || 'i' || DATE_TO_UNIX_TS(SYSTIMESTAMP) || FLOOR(dbms_random.value(1,1000)) || v_id
    INTO uri
    FROM DUAL;
    DELETE FROM sequence_uri_provider;
    commit;
    RETURN(uri);
  END;

