SQL> SELECT * FROM (SELECT * FROM temp SAMPLE(50)) WHERE ROWNUM<=3;
 
                                     ID NAME            PDATE
--------------------------------------- --------------- -----------
                                      1 sd              2005-1-2
                                      2 sd              2005-1-2
                                      3 sd              2005-1-2
 
SQL> /
 
                                     ID NAME            PDATE
--------------------------------------- --------------- -----------
                                      3 sd              2005-1-2
                                      1 jack            2008-1-2
 
SQL> /
 
                                     ID NAME            PDATE
--------------------------------------- --------------- -----------
                                      2 sd              2005-1-2
                                      3 sd              2005-1-2
                                      1 jack            2008-1-2
 
SQL> /
 
                                     ID NAME            PDATE
--------------------------------------- --------------- -----------
                                      2 sd              2005-1-2
                                      3 sd              2005-1-2
                                      5 sd              2005-1-2
 SQL> select count(*) from temp ;
 
  COUNT(*)
----------
         6 程序返回的结果数目不同~!
这是为什么呢 
用 dbms_value 结果正常.....