Search notes:

Oracle SQL function: ORA_HASH

ora_hash(expr) calculates a hash value for expr.
ora_hash(…) is not available in PL/SQL.
ora_hash(expr)
ora_hash(expr, max_bucket)
ora_hash(expr, max_bucket, seed_value)
ora_hash(expr, max_bucket, seed_value, unkonwn_1)
ora_hash(expr, max_bucket, seed_value, unkonwn_1, unkonwn_2)

Not suitable for LOBs (and LONGs)

ora_hash(expr) returns an unpredictable value if expr is a lob or long type, as is demonstrated in the following example:
create table drop_me (a clob);

insert into drop_me values ('x');
insert into drop_me values (rpad('4000 ', 4000, 'x'));
insert into drop_me values (rpad('4001 ', 4001, 'x'));

select  a, ora_hash(a) from drop_me;

drop table drop_me;

Unknown parameters

The semantics of the fourth and fifth parameter is unkwnon to me:
select
   ora_hash(1, 2048, 42           )   h_1,
   ora_hash(1, 2048, 42, 'xyz'    )   h_2,
   ora_hash(1, 2048, 42, 'xyz', 99)   h_3
from
   dual;

See also

Compare with standard_hash(…) (which doesn't accept LOBs, either) and dbms_utility.get_hash_value
Apparently, ora_hash() (or a function uses the same algorithm) is used to calculate the value of module_hash in v$session.
dbms_crypto.hash

Index