Является ли ora_hash детерминированным?
Я работаю с базой данных Oracle, и мне нужно иметь возможность разделить данные в таблице. Я понимаю, что в Rracle есть функция ora_hash, которая может разбивать данные на сегменты. Является ли функция ora_hash детерминированной?
В моей программе я буду делать несколько разных запросов к базе данных, каждый из которых запрашивает другой номер корзины.
Например, в одном запросе я мог бы попросить первые два сегмента:
SELECT * FROM sales WHERE ORA_HASH(cust_id, 9) in (0,1);
В следующем запросе я мог бы попросить 2-й и 3-й ведро:
SELECT * FROM sales WHERE ORA_HASH(cust_id, 9) in (1,2);
В приведенном выше примере, ora_hash всегда будет делить таблицу на те же 10 сегментов? Предположим, что данные в таблицах не изменились. Будет ли второе ведро (ведро 1) идентичным в обоих запросах?
Есть документация, которая предполагает, чтоначальная стоимость позволяет оракулу возвращать разные результаты для одного и того же набора данных. Поэтому я предполагаю, что если я не буду использоватьначальная стоимость, тогда ora_hash будет детерминированным. Видетьдокументация.