Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: How to inhibit that subquery merging behavior
Jonathan,
Did you try putting rownum in the sub-query's select list?
select *
from ( select flag, to_number(num) num, rownum
from subtest where flag in('A','C'))
-----Original Message-----
From: oracle-l-bounce_at_freelists.org on behalf of Jonathan Gennick Sent: Fri 7/16/2004 8:59 PM To: Wolfgang Breitling Cc: Subject: How to inhibit that subquery merging behaviorWolfgang,
I can reproduce the error:
SQL> SELECT *
2 FROM ( SELECT flag, TO_NUMBER(num) num
3 FROM subtest 4 WHERE flag IN ('A', 'C') )
However, I can't find a hint that will prevent the merging of the subquery. I've tried Tanel's suggestions:
SQL> SELECT /*+ NO_MERGE(sub) NO_PUSH_PRED(sub) PUSH_SUBQ(sub) */ * 2 FROM ( SELECT flag, TO_NUMBER(num) num
3 FROM subtest 4 WHERE flag IN ('A', 'C') ) sub5 WHERE num > 0;
I've also tried putting the hints into the subquery:
SQL> SELECT *
2 FROM ( SELECT /*+ NO_MERGE NO_PUSH_PRED PUSH_SUBQ */
3 flag, TO_NUMBER(num) num 4 FROM subtest 5 WHERE flag IN ('A', 'C') ) sub6 WHERE num > 0;
Is there a hint that will prevent the queries from being merged?
Best regards,
Jonathan Gennick --- Brighten the corner where you are http://Gennick.com * 906.387.1698 * mailto:jonathan@gennick.com
Join the Oracle-article list and receive one article on Oracle technologies per month by email. To join, visit http://five.pairlist.net/mailman/listinfo/oracle-article, or send email to Oracle-article-request_at_gennick.com and include the word "subscribe" in either the subject or body.