I'm using the SAMPLE clause to retrieve random rows from a table. It works fine except when the table is from another database. I'm using a database link between 2 Oracle 11g databases (11.2).
This query returns different random rows everytime I run it:
select * from myTable sample(10);
But this one always returns the same rows and in the same order:
select * from myTable@myDbLink sample(10);
I expected at least the same behavior as the tables are on the same version of Oracle. Why isn't it working? Is there a specific way to write this query so it can work with the link?
Best Answer
According to the Oracle documentation for the
SELECT ... SAMPLE
clause, the sample is random; it is just a coincidence that you are always getting the same rows on the local machine. You could try adding the SEED(x) clause, where x is a number from 0 to 4294967295; but that may not help going across a database link.Per the Oracle documentation:
Notice it is still not guaranteed!