Wrapping a "select" into a "select * from (SQL select)" costs much more

I had a SELECT statement which works OK. It takes about 10-20 seconds to respond.
However, I need to order it and use rownum so I figured by wrapping the statement in a SELECT * FROM (...) would be the same difference, pretty much.
However, before I even add a sort or use rownum, it costs so much more.
How can that be? Surely it runs the subquery and then just shows the columns from that?
Here are the details for both:
SELECT ms.component_part, ip."DESCRIPTION", ms.qty_per_assembly, ipp.
       mrp_order_code, ip.planner_buyer, ip.type_code, pps.vendor_no, pps.
       vendor_manuf_leadtime, ipp.min_order_qty, ipp.maxweek_supply
       period_order_quantity, ipp.safety_stock,
       ifsapp.inventory_part_in_stock_api.GET_INVENTORY_QTY_ONHAND(ms.contract,
       ms.component_part, NULL) qty_onhand, ip.estimated_material_cost, (SELECT
       SUM(ex.qty_demand)
    FROM ifsinfo.km_order_supply_demand_mfg ex
    WHERE ex.date_required BETWEEN TO_DATE(SYSDATE) AND TO_DATE('01/05/2007',
          'DD/MM/YYYY') + 1 - 1 / ((60 * 60) * 24)
      AND ex.part_no = ms.component_part
      AND ex.contract = ms.contract
    GROUP BY ex.part_no) manu_sum_dmd, (SELECT SUM(ex.qty_demand)
                                            FROM ifsinfo.km_order_supply_demand_pur ex
                                            WHERE ex.date_required BETWEEN
                                                  TO_DATE(SYSDATE) AND
                                                  TO_DATE('01/05/2007',
                                                  'DD/MM/YYYY') + 1 - 1 / ((60
                                                  * 60) * 24)
                                              AND ex.part_no = ms.
                                                  component_part
                                              AND ex.contract = ms.contract
                                            GROUP BY ex.part_no) purch_sum_dmd
    FROM ifsapp.manuf_structure ms, ifsapp.inventory_part ip, ifsapp.
         inventory_part_planning ipp, ifsapp.purchase_part_supplier pps
    WHERE ms.component_part = ip.part_no
      AND ms.contract = ip.contract
      AND ms.component_part = ipp.part_no
      AND ms.contract = ipp.contract
      AND ms.component_part = pps.part_no(+)
      AND ms.contract = pps.contract(+)
      AND NVL(pps.primary_vendor_db, 'Y') = 'Y'
    CONNECT BY PRIOR ms.component_part = ms.part_no
           AND PRIOR ms.contract = ms.contract
           AND ms.eff_phase_in_date <= SYSDATE
           AND NVL(ms.eff_phase_out_date, SYSDATE) >= SYSDATE
    START WITH ms.part_no = 'K7501890'
          AND ms.contract = 'OKMMN'
          AND ms.bom_type = 'Manufacturing'
          AND ms.eng_chg_level = '1'
Get Explain Plan By:
   Cost All Rows
Execution Steps:
328  SELECT STATEMENT
155  SORT (GROUP BY NOSORT)
154  MERGE JOIN (CARTESIAN)
5  FILTER
4  NESTED LOOPS (OUTER)
1  INDEX (RANGE SCAN), INVENTORY_PART_CONFIG_PK (IFSAPP) 
3  TABLE ACCESS (BY INDEX ROWID), INVENTORY_PART_TAB (IFSAPP) 
2  INDEX (UNIQUE SCAN), INVENTORY_PART_PK (IFSAPP) 
153  BUFFER (SORT)
152  VIEW, ORDER_SUPPLY_DEMAND_EXT (IFSAPP) 
151  UNION-ALL
9  FILTER
8  INLIST ITERATOR
7  TABLE ACCESS (BY INDEX ROWID), SHOP_MATERIAL_ALLOC_TAB (IFSAPP) 
6  INDEX (RANGE SCAN), SHOP_MATERIAL_ALLOC_1_IX (IFSAPP) 
13  FILTER
12  INLIST ITERATOR
11  TABLE ACCESS (BY INDEX ROWID), CUSTOMER_ORDER_LINE_TAB (IFSAPP) 
10  INDEX (RANGE SCAN), CUSTOMER_ORDER_LINE_2_IX (IFSAPP) 
17  FILTER
16  INLIST ITERATOR
15  TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP) 
14  INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_1_IX (IFSAPP) 
20  FILTER
19  TABLE ACCESS (BY INDEX ROWID), SHOP_ORD_TAB (IFSAPP) 
18  INDEX (RANGE SCAN), SHOP_ORD_TAB_1_IX (IFSAPP) 
26  FILTER
25  NESTED LOOPS
22  TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_COMP_TAB (IFSAPP) 
21  INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_COMP_1_IX (IFSAPP) 
24  TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP) 
23  INDEX (UNIQUE SCAN), PURCHASE_ORDER_LINE_PK (IFSAPP) 
30  FILTER
29  INLIST ITERATOR
28  TABLE ACCESS (BY INDEX ROWID), MATERIAL_REQUIS_LINE_TAB (IFSAPP) 
27  INDEX (RANGE SCAN), MATERIAL_REQUIS_LINE_1_IX (IFSAPP) 
39  FILTER
38  NESTED LOOPS
35  NESTED LOOPS
32  TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQ_LINE_TAB (IFSAPP) 
31  INDEX (RANGE SCAN), MAINT_MATERIAL_REQ_LINE_IX2 (IFSAPP) 
34  TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQUISITION_TAB (IFSAPP) 
33  INDEX (UNIQUE SCAN), MAINT_MATERIAL_REQUISITION_PK (IFSAPP) 
37  TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP) 
36  INDEX (UNIQUE SCAN), ACTIVE_WORK_ORDER_PK (IFSAPP) 
42  FILTER
41  TABLE ACCESS (BY INDEX ROWID), PURCHASE_REQ_LINE_TAB (IFSAPP) 
40  INDEX (RANGE SCAN), PURCHASE_REQ_LINE1_IX (IFSAPP) 
79  VIEW, MRP_PART_SUPPLY_DEMAND_EXT (IFSAPP) 
78  SORT (UNIQUE)
77  UNION-ALL
57  FILTER
56  NESTED LOOPS (ANTI)
44  TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP) 
43  INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP) 
55  VIEW, LINE_SCHED_COMP_EXT (IFSAPP) 
54  UNION-ALL (PARTITION)
48  NESTED LOOPS
46  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP) 
45  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP) 
47  INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP) 
53  NESTED LOOPS
50  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP) 
49  INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP) 
52  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP) 
51  INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP) 
76  FILTER
75  NESTED LOOPS (ANTI)
62  NESTED LOOPS
59  TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP) 
58  INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP) 
61  TABLE ACCESS (BY INDEX ROWID), INVENTORY_PART_PLANNING_TAB (IFSAPP) 
60  INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP) 
74  VIEW, LINE_SCHED_COMP_EXT (IFSAPP) 
73  UNION-ALL (PARTITION)
67  NESTED LOOPS
64  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP) 
63  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP) 
66  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP) 
65  INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP) 
72  NESTED LOOPS
69  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP) 
68  INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP) 
71  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP) 
70  INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP) 
84  FILTER
83  NESTED LOOPS
80  INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP) 
82  TABLE ACCESS (BY INDEX ROWID), SHOP_ORDER_PROP_TAB (IFSAPP) 
81  INDEX (RANGE SCAN), SHOP_ORDER_PROP_1_IX (IFSAPP) 
90  FILTER
89  NESTED LOOPS
86  TABLE ACCESS (BY INDEX ROWID), LEVEL_1_PART_TAB (IFSAPP) 
85  INDEX (UNIQUE SCAN), LEVEL_1_PART_PK (IFSAPP) 
88  TABLE ACCESS (BY INDEX ROWID), LEVEL_1_FORECAST_TAB (IFSAPP) 
87  INDEX (RANGE SCAN), LEVEL_1_FORECAST_PK (IFSAPP) 
96  FILTER
93  FILTER
92  TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP) 
91  INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP) 
95  TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP) 
94  INDEX (UNIQUE SCAN), DOP_ORDER_PK (IFSAPP) 
99  FILTER
98  TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP) 
97  INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP) 
112  VIEW, LINE_SCHED_COMP_EXT (IFSAPP) 
111  UNION-ALL
104  FILTER
103  NESTED LOOPS
101  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP) 
100  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP) 
102  INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP) 
110  FILTER
109  NESTED LOOPS
106  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP) 
105  INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP) 
108  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP) 
107  INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP) 
117  FILTER
116  NESTED LOOPS
113  INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP) 
115  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP) 
114  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_2_IX (IFSAPP) 
120  FILTER
119  TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP) 
118  INDEX (RANGE SCAN), ACTIVE_WORK_ORDER_IX2 (IFSAPP) 
123  FILTER
122  TABLE ACCESS (BY INDEX ROWID), SPARE_PART_FORECAST_TAB (IFSAPP) 
121  INDEX (RANGE SCAN), SPARE_PART_FORECAST_PK (IFSAPP) 
126  FILTER
125  TABLE ACCESS (BY INDEX ROWID), CUST_SCHED_PLAN_DEMAND_TAB (IFSAPP) 
124  INDEX (RANGE SCAN), CUST_SCHED_PLAN_DEMAND_1_IX (IFSAPP) 
138  FILTER
137  HASH JOIN (ANTI)
135  HASH JOIN (ANTI)
133  NESTED LOOPS
130  NESTED LOOPS
128  TABLE ACCESS (BY INDEX ROWID), MATERIAL_PROCUREMENT_LIST_TAB (IFSAPP) 
127  INDEX (RANGE SCAN), MPL_AK1 (IFSAPP) 
129  INDEX (UNIQUE SCAN), ACTIVITY_PK (IFSAPP) 
132  TABLE ACCESS (BY INDEX ROWID), PROJECT_PRODUCT_STRUCTURE_TAB (IFSAPP) 
131  INDEX (UNIQUE SCAN), PROJECT_PRODUCT_STRUCTURE_PK (IFSAPP) 
134  TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP) 
136  TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP) 
141  FILTER
140  TABLE ACCESS (BY INDEX ROWID), HPM_PART_SUPPLY_DEMAND_TAB (IFSAPP) 
139  INDEX (RANGE SCAN), HPM_PART_SUPPLY_DEMAND_PK (IFSAPP) 
144  FILTER
143  TABLE ACCESS (BY INDEX ROWID), SUPP_SCHED_PLAN_SUPPLY_TAB (IFSAPP) 
142  INDEX (RANGE SCAN), SUPP_SCHED_PLAN_SUPPLY_1_IX (IFSAPP) 
147  FILTER
146  TABLE ACCESS (BY INDEX ROWID), ORDER_QUOTATION_LINE_TAB (IFSAPP) 
145  INDEX (RANGE SCAN), ORDER_QUOTATION_LINE_2_IX (IFSAPP) 
150  FILTER
149  TABLE ACCESS (BY INDEX ROWID), PROMISE_INVENTORY_ORDER_TAB (IFSAPP) 
148  INDEX (FULL SCAN), PROMISE_INVENTORY_ORDER_PK (IFSAPP) 
306  SORT (GROUP BY NOSORT)
305  NESTED LOOPS
157  TABLE ACCESS (BY INDEX ROWID), PURCHASE_PART_TAB (IFSAPP) 
156  INDEX (UNIQUE SCAN), PURCHASE_PART_PK (IFSAPP) 
304  VIEW, ORDER_SUPPLY_DEMAND_EXT (IFSAPP) 
303  UNION-ALL
161  FILTER
160  INLIST ITERATOR
159  TABLE ACCESS (BY INDEX ROWID), SHOP_MATERIAL_ALLOC_TAB (IFSAPP) 
158  INDEX (RANGE SCAN), SHOP_MATERIAL_ALLOC_1_IX (IFSAPP) 
165  FILTER
164  INLIST ITERATOR
163  TABLE ACCESS (BY INDEX ROWID), CUSTOMER_ORDER_LINE_TAB (IFSAPP) 
162  INDEX (RANGE SCAN), CUSTOMER_ORDER_LINE_2_IX (IFSAPP) 
169  FILTER
168  INLIST ITERATOR
167  TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP) 
166  INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_1_IX (IFSAPP) 
172  FILTER
171  TABLE ACCESS (BY INDEX ROWID), SHOP_ORD_TAB (IFSAPP) 
170  INDEX (RANGE SCAN), SHOP_ORD_TAB_1_IX (IFSAPP) 
178  FILTER
177  NESTED LOOPS
174  TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_COMP_TAB (IFSAPP) 
173  INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_COMP_1_IX (IFSAPP) 
176  TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP) 
175  INDEX (UNIQUE SCAN), PURCHASE_ORDER_LINE_PK (IFSAPP) 
182  FILTER
181  INLIST ITERATOR
180  TABLE ACCESS (BY INDEX ROWID), MATERIAL_REQUIS_LINE_TAB (IFSAPP) 
179  INDEX (RANGE SCAN), MATERIAL_REQUIS_LINE_1_IX (IFSAPP) 
191  FILTER
190  NESTED LOOPS
187  NESTED LOOPS
184  TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQ_LINE_TAB (IFSAPP) 
183  INDEX (RANGE SCAN), MAINT_MATERIAL_REQ_LINE_IX2 (IFSAPP) 
186  TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQUISITION_TAB (IFSAPP) 
185  INDEX (UNIQUE SCAN), MAINT_MATERIAL_REQUISITION_PK (IFSAPP) 
189  TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP) 
188  INDEX (UNIQUE SCAN), ACTIVE_WORK_ORDER_PK (IFSAPP) 
194  FILTER
193  TABLE ACCESS (BY INDEX ROWID), PURCHASE_REQ_LINE_TAB (IFSAPP) 
192  INDEX (RANGE SCAN), PURCHASE_REQ_LINE1_IX (IFSAPP) 
231  VIEW, MRP_PART_SUPPLY_DEMAND_EXT (IFSAPP) 
230  SORT (UNIQUE)
229  UNION-ALL
209  FILTER
208  NESTED LOOPS (ANTI)
196  TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP) 
195  INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP) 
207  VIEW, LINE_SCHED_COMP_EXT (IFSAPP) 
206  UNION-ALL (PARTITION)
200  NESTED LOOPS
198  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP) 
197  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP) 
199  INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP) 
205  NESTED LOOPS
202  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP) 
201  INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP) 
204  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP) 
203  INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP) 
228  FILTER
227  NESTED LOOPS (ANTI)
214  NESTED LOOPS
211  TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP) 
210  INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP) 
213  TABLE ACCESS (BY INDEX ROWID), INVENTORY_PART_PLANNING_TAB (IFSAPP) 
212  INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP) 
226  VIEW, LINE_SCHED_COMP_EXT (IFSAPP) 
225  UNION-ALL (PARTITION)
219  NESTED LOOPS
216  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP) 
215  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP) 
218  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP) 
217  INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP) 
224  NESTED LOOPS
221  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP) 
220  INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP) 
223  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP) 
222  INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP) 
236  FILTER
235  NESTED LOOPS
232  INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP) 
234  TABLE ACCESS (BY INDEX ROWID), SHOP_ORDER_PROP_TAB (IFSAPP) 
233  INDEX (RANGE SCAN), SHOP_ORDER_PROP_1_IX (IFSAPP) 
242  FILTER
241  NESTED LOOPS
238  TABLE ACCESS (BY INDEX ROWID), LEVEL_1_PART_TAB (IFSAPP) 
237  INDEX (UNIQUE SCAN), LEVEL_1_PART_PK (IFSAPP) 
240  TABLE ACCESS (BY INDEX ROWID), LEVEL_1_FORECAST_TAB (IFSAPP) 
239  INDEX (RANGE SCAN), LEVEL_1_FORECAST_PK (IFSAPP) 
248  FILTER
245  FILTER
244  TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP) 
243  INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP) 
247  TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP) 
246  INDEX (UNIQUE SCAN), DOP_ORDER_PK (IFSAPP) 
251  FILTER
250  TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP) 
249  INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP) 
264  VIEW, LINE_SCHED_COMP_EXT (IFSAPP) 
263  UNION-ALL
256  FILTER
255  NESTED LOOPS
253  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP) 
252  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP) 
254  INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP) 
262  FILTER
261  NESTED LOOPS
258  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP) 
257  INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP) 
260  TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP) 
259  INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP) 
269  FILTER
268  NESTED LOOPS
265  INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP) 
267  TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP) 
266  INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_2_IX (IFSAPP) 
272  FILTER
271  TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP) 
270  INDEX (RANGE SCAN), ACTIVE_WORK_ORDER_IX2 (IFSAPP) 
275  FILTER
274  TABLE ACCESS (BY INDEX ROWID), SPARE_PART_FORECAST_TAB (IFSAPP) 
273  INDEX (RANGE SCAN), SPARE_PART_FORECAST_PK (IFSAPP) 
278  FILTER
277  TABLE ACCESS (BY INDEX ROWID), CUST_SCHED_PLAN_DEMAND_TAB (IFSAPP) 
276  INDEX (RANGE SCAN), CUST_SCHED_PLAN_DEMAND_1_IX (IFSAPP) 
290  FILTER
289  HASH JOIN (ANTI)
287  HASH JOIN (ANTI)
285  NESTED LOOPS
282  NESTED LOOPS
280  TABLE ACCESS (BY INDEX ROWID), MATERIAL_PROCUREMENT_LIST_TAB (IFSAPP) 
279  INDEX (RANGE SCAN), MPL_AK1 (IFSAPP) 
281  INDEX (UNIQUE SCAN), ACTIVITY_PK (IFSAPP) 
284  TABLE ACCESS (BY INDEX ROWID), PROJECT_PRODUCT_STRUCTURE_TAB (IFSAPP) 
283  INDEX (UNIQUE SCAN), PROJECT_PRODUCT_STRUCTURE_PK (IFSAPP) 
286  TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP) 
288  TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP) 
293  FILTER
292  TABLE ACCESS (BY INDEX ROWID), HPM_PART_SUPPLY_DEMAND_TAB (IFSAPP) 
291  INDEX (RANGE SCAN), HPM_PART_SUPPLY_DEMAND_PK (IFSAPP) 
296  FILTER
295  TABLE ACCESS (BY INDEX ROWID), SUPP_SCHED_PLAN_SUPPLY_TAB (IFSAPP) 
294  INDEX (RANGE SCAN), SUPP_SCHED_PLAN_SUPPLY_1_IX (IFSAPP) 
299  FILTER
298  TABLE ACCESS (BY INDEX ROWID), ORDER_QUOTATION_LINE_TAB (IFSAPP) 
297  INDEX (RANGE SCAN), ORDER_QUOTATION_LINE_2_IX (IFSAPP) 
302  FILTER
301  TABLE ACCESS (BY INDEX ROWID), PROMISE_INVENTORY_ORDER_TAB (IFSAPP) 
300  INDEX (FULL SCAN), PROMISE_INVENTORY_ORDER_PK (IFSAPP) 
327  FILTER
326  CONNECT BY (WITH FILTERING)
315  FILTER
314  COUNT
313  HASH JOIN
307  TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP) 
312  HASH JOIN (OUTER)
310  HASH JOIN
308  TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP) 
309  TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP) 
311  TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP) 
325  HASH JOIN
316  CONNECT BY PUMP
324  COUNT
323  HASH JOIN
317  TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP) 
322  HASH JOIN (OUTER)
320  HASH JOIN
318  TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP) 
319  TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP) 
321  TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP) 
Step Description Est Cost Est Row Count Est Byte Count
1 This operation retrieves multiple ROWIDs by scanning index INVENTORY_PART_CONFIG_PK (ascending by key). 3 1 15
2 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PK. 1 1 
3 This operation retrieves a row of table INVENTORY_PART_TAB based on its ROWID. 1 1 17
4 This operation performs an outer join by comparing each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds.   
5 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
6 This operation retrieves multiple ROWIDs by scanning index SHOP_MATERIAL_ALLOC_1_IX (ascending by key). 3 106 
7 This operation retrieves a row of table SHOP_MATERIAL_ALLOC_TAB based on its ROWID. 11 1 41
8 This operation represents an iteration over each element in the list represented by its child node.   
9 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
10 This operation retrieves multiple ROWIDs by scanning index CUSTOMER_ORDER_LINE_2_IX (ascending by key). 3 10 
11 This operation retrieves a row of table CUSTOMER_ORDER_LINE_TAB based on its ROWID. 2 1 48
12 This operation represents an iteration over each element in the list represented by its child node.   
13 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
14 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_1_IX (ascending by key). 3 2 
15 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 48
16 This operation represents an iteration over each element in the list represented by its child node.   
17 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
18 This operation retrieves multiple ROWIDs by scanning index SHOP_ORD_TAB_1_IX (ascending by key). 1 21 
19 This operation retrieves a row of table SHOP_ORD_TAB based on its ROWID. 2 1 46
20 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
21 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_COMP_1_IX (ascending by key). 1 12 
22 This operation retrieves a row of table PURCHASE_ORDER_LINE_COMP_TAB based on its ROWID. 1 1 43
23 This operation retrieves a single ROWID by an index lookup of PURCHASE_ORDER_LINE_PK. 1 1 
24 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 25
25 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
26 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
27 This operation retrieves multiple ROWIDs by scanning index MATERIAL_REQUIS_LINE_1_IX (ascending by key). 2 1 
28 This operation retrieves a row of table MATERIAL_REQUIS_LINE_TAB based on its ROWID. 1 1 37
29 This operation represents an iteration over each element in the list represented by its child node.   
30 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
31 This operation retrieves multiple ROWIDs by scanning index MAINT_MATERIAL_REQ_LINE_IX2 (ascending by key). 1 1 
32 This operation retrieves a row of table MAINT_MATERIAL_REQ_LINE_TAB based on its ROWID. 1 1 79
33 This operation retrieves a single ROWID by an index lookup of MAINT_MATERIAL_REQUISITION_PK.  1 
34 This operation retrieves a row of table MAINT_MATERIAL_REQUISITION_TAB based on its ROWID. 1 1 43
35 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 122
36 This operation retrieves a single ROWID by an index lookup of ACTIVE_WORK_ORDER_PK.  1 
37 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 30
38 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 152
39 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
40 This operation retrieves multiple ROWIDs by scanning index PURCHASE_REQ_LINE1_IX (ascending by key). 3 3 
41 This operation retrieves a row of table PURCHASE_REQ_LINE_TAB based on its ROWID. 1 1 40
42 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
43 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17 
44 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
45 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
46 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
47 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK.  1 8
48 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
49 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
50 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
51 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK.  1 
52 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
53 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
54 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
55 This operation yields the result of performing the query of views. 1 1 40
56 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 89
57 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
58 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17 
59 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
60 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 1 1 
61 This operation retrieves a row of table INVENTORY_PART_PLANNING_TAB based on its ROWID. 1 1 17
62 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 66
63 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
64 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
65 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK.  1 
66 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 22
67 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 61
68 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
69 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 26
70 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK.  1 
71 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
72 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 51
73 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
74 This operation yields the result of performing the query of views. 1 1 32
75 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 4 1 98
76 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
77 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
78 This operation returns the distinct rows from its child row source, in order. 11 2 187
79 This operation yields the result of performing the query of views. 11 2 80
80 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
81 This operation retrieves multiple ROWIDs by scanning index SHOP_ORDER_PROP_1_IX (ascending by key). 2 30 
82 This operation retrieves a row of table SHOP_ORDER_PROP_TAB based on its ROWID. 2 1 44
83 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 59
84 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
85 This operation retrieves a single ROWID by an index lookup of LEVEL_1_PART_PK. 1 1 
86 This operation retrieves a row of table LEVEL_1_PART_TAB based on its ROWID. 1 1 17
87 This operation retrieves multiple ROWIDs by scanning index LEVEL_1_FORECAST_PK (ascending by key). 1 16 
88 This operation retrieves a row of table LEVEL_1_FORECAST_TAB based on its ROWID. 1 1 31
89 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 48
90 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
91 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1 
92 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 96
93 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
94 This operation retrieves a single ROWID by an index lookup of DOP_ORDER_PK.  1 
95 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 43
96 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
97 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1 
98 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 69
99 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
100 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
101 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
102 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK.  1 8
103 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
104 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
105 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
106 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
107 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK.  1 
108 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
109 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
110 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
111 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
112 This operation yields the result of performing the query of views. 4 2 80
113 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
114 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_2_IX (ascending by key).  1 
115 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 53
116 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
117 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
118 This operation retrieves multiple ROWIDs by scanning index ACTIVE_WORK_ORDER_IX2 (ascending by key). 1 1 
119 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 73
120 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
121 This operation retrieves multiple ROWIDs by scanning index SPARE_PART_FORECAST_PK (ascending by key).  1 
122 This operation retrieves a row of table SPARE_PART_FORECAST_TAB based on its ROWID. 1 1 53
123 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
124 This operation retrieves multiple ROWIDs by scanning index CUST_SCHED_PLAN_DEMAND_1_IX (ascending by key). 1 1 
125 This operation retrieves a row of table CUST_SCHED_PLAN_DEMAND_TAB based on its ROWID. 1 1 40
126 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
127 This operation retrieves multiple ROWIDs by scanning index MPL_AK1 (ascending by key). 2 3 
128 This operation retrieves a row of table MATERIAL_PROCUREMENT_LIST_TAB based on its ROWID. 1 1 52
129 This operation retrieves a single ROWID by an index lookup of ACTIVITY_PK.  1 7
130 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 59
131 This operation retrieves a single ROWID by an index lookup of PROJECT_PRODUCT_STRUCTURE_PK.  1 
132 This operation retrieves a row of table PROJECT_PRODUCT_STRUCTURE_TAB based on its ROWID. 1 1 12
133 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 71
134 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 77 616
135 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 6 1 79
136 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 273 2730
137 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 9 1 89
138 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
139 This operation retrieves multiple ROWIDs by scanning index HPM_PART_SUPPLY_DEMAND_PK (ascending by key).  1 
140 This operation retrieves a row of table HPM_PART_SUPPLY_DEMAND_TAB based on its ROWID. 1 1 64
141 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
142 This operation retrieves multiple ROWIDs by scanning index SUPP_SCHED_PLAN_SUPPLY_1_IX (ascending by key). 1 1 
143 This operation retrieves a row of table SUPP_SCHED_PLAN_SUPPLY_TAB based on its ROWID. 1 1 27
144 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
145 This operation retrieves multiple ROWIDs by scanning index ORDER_QUOTATION_LINE_2_IX (ascending by key). 3 27 
146 This operation retrieves a row of table ORDER_QUOTATION_LINE_TAB based on its ROWID. 3 1 48
147 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
148 This operation retrieves all ROWIDs via a full index lookup of PROMISE_INVENTORY_ORDER_PK.  1 
149 This operation retrieves a row of table PROMISE_INVENTORY_ORDER_TAB based on its ROWID. 1 1 46
150 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
151 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
152 This operation yields the result of performing the query of views. 61 25 1000
153 This plan step has no supplementary description information. 62 25 1000
154 This operation denotes a cartesian product between its two children row sources. Cartesian products are extremely inefficient. 63 8 576
155  63 8 576
156 This operation retrieves a single ROWID by an index lookup of PURCHASE_PART_PK. 2 1 
157 This operation retrieves a row of table PURCHASE_PART_TAB based on its ROWID. 1 1 22
158 This operation retrieves multiple ROWIDs by scanning index SHOP_MATERIAL_ALLOC_1_IX (ascending by key). 3 106 
159 This operation retrieves a row of table SHOP_MATERIAL_ALLOC_TAB based on its ROWID. 11 1 41
160 This operation represents an iteration over each element in the list represented by its child node.   
161 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
162 This operation retrieves multiple ROWIDs by scanning index CUSTOMER_ORDER_LINE_2_IX (ascending by key). 3 10 
163 This operation retrieves a row of table CUSTOMER_ORDER_LINE_TAB based on its ROWID. 2 1 48
164 This operation represents an iteration over each element in the list represented by its child node.   
165 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
166 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_1_IX (ascending by key). 3 2 
167 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 48
168 This operation represents an iteration over each element in the list represented by its child node.   
169 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
170 This operation retrieves multiple ROWIDs by scanning index SHOP_ORD_TAB_1_IX (ascending by key). 1 21 
171 This operation retrieves a row of table SHOP_ORD_TAB based on its ROWID. 2 1 46
172 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
173 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_COMP_1_IX (ascending by key). 1 12 
174 This operation retrieves a row of table PURCHASE_ORDER_LINE_COMP_TAB based on its ROWID. 1 1 43
175 This operation retrieves a single ROWID by an index lookup of PURCHASE_ORDER_LINE_PK. 1 1 
176 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 25
177 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
178 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
179 This operation retrieves multiple ROWIDs by scanning index MATERIAL_REQUIS_LINE_1_IX (ascending by key). 2 1 
180 This operation retrieves a row of table MATERIAL_REQUIS_LINE_TAB based on its ROWID. 1 1 37
181 This operation represents an iteration over each element in the list represented by its child node.   
182 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
183 This operation retrieves multiple ROWIDs by scanning index MAINT_MATERIAL_REQ_LINE_IX2 (ascending by key). 1 1 
184 This operation retrieves a row of table MAINT_MATERIAL_REQ_LINE_TAB based on its ROWID. 1 1 79
185 This operation retrieves a single ROWID by an index lookup of MAINT_MATERIAL_REQUISITION_PK.  1 
186 This operation retrieves a row of table MAINT_MATERIAL_REQUISITION_TAB based on its ROWID. 1 1 43
187 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 122
188 This operation retrieves a single ROWID by an index lookup of ACTIVE_WORK_ORDER_PK.  1 
189 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 30
190 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 152
191 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
192 This operation retrieves multiple ROWIDs by scanning index PURCHASE_REQ_LINE1_IX (ascending by key). 3 3 
193 This operation retrieves a row of table PURCHASE_REQ_LINE_TAB based on its ROWID. 1 1 40
194 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
195 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17 
196 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
197 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
198 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
199 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK.  1 8
200 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
201 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
202 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
203 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK.  1 
204 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
205 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
206 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
207 This operation yields the result of performing the query of views. 1 1 40
208 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 89
209 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
210 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17 
211 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
212 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 1 1 
213 This operation retrieves a row of table INVENTORY_PART_PLANNING_TAB based on its ROWID. 1 1 17
214 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 66
215 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
216 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
217 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK.  1 
218 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 22
219 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 61
220 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
221 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 26
222 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK.  1 
223 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
224 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 51
225 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
226 This operation yields the result of performing the query of views. 1 1 32
227 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 4 1 98
228 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
229 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
230 This operation returns the distinct rows from its child row source, in order. 11 2 187
231 This operation yields the result of performing the query of views. 11 2 80
232 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
233 This operation retrieves multiple ROWIDs by scanning index SHOP_ORDER_PROP_1_IX (ascending by key). 2 30 
234 This operation retrieves a row of table SHOP_ORDER_PROP_TAB based on its ROWID. 2 1 44
235 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 59
236 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
237 This operation retrieves a single ROWID by an index lookup of LEVEL_1_PART_PK. 1 1 
238 This operation retrieves a row of table LEVEL_1_PART_TAB based on its ROWID. 1 1 17
239 This operation retrieves multiple ROWIDs by scanning index LEVEL_1_FORECAST_PK (ascending by key). 1 16 
240 This operation retrieves a row of table LEVEL_1_FORECAST_TAB based on its ROWID. 1 1 31
241 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 48
242 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
243 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1 
244 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 96
245 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
246 This operation retrieves a single ROWID by an index lookup of DOP_ORDER_PK.  1 
247 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 43
248 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
249 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1 
250 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 69
251 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
252 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
253 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
254 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK.  1 8
255 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
256 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
257 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1 
258 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
259 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK.  1 
260 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
261 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
262 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
263 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
264 This operation yields the result of performing the query of views. 4 2 80
265 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
266 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_2_IX (ascending by key).  1 
267 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 53
268 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
269 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
270 This operation retrieves multiple ROWIDs by scanning index ACTIVE_WORK_ORDER_IX2 (ascending by key). 1 1 
271 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 73
272 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
273 This operation retrieves multiple ROWIDs by scanning index SPARE_PART_FORECAST_PK (ascending by key).  1 
274 This operation retrieves a row of table SPARE_PART_FORECAST_TAB based on its ROWID. 1 1 53
275 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
276 This operation retrieves multiple ROWIDs by scanning index CUST_SCHED_PLAN_DEMAND_1_IX (ascending by key). 1 1 
277 This operation retrieves a row of table CUST_SCHED_PLAN_DEMAND_TAB based on its ROWID. 1 1 40
278 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
279 This operation retrieves multiple ROWIDs by scanning index MPL_AK1 (ascending by key). 2 3 
280 This operation retrieves a row of table MATERIAL_PROCUREMENT_LIST_TAB based on its ROWID. 1 1 52
281 This operation retrieves a single ROWID by an index lookup of ACTIVITY_PK.  1 7
282 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 59
283 This operation retrieves a single ROWID by an index lookup of PROJECT_PRODUCT_STRUCTURE_PK.  1 
284 This operation retrieves a row of table PROJECT_PRODUCT_STRUCTURE_TAB based on its ROWID. 1 1 12
285 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 71
286 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 77 616
287 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 6 1 79
288 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 273 2730
289 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 9 1 89
290 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
291 This operation retrieves multiple ROWIDs by scanning index HPM_PART_SUPPLY_DEMAND_PK (ascending by key).  1 
292 This operation retrieves a row of table HPM_PART_SUPPLY_DEMAND_TAB based on its ROWID. 1 1 64
293 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
294 This operation retrieves multiple ROWIDs by scanning index SUPP_SCHED_PLAN_SUPPLY_1_IX (ascending by key). 1 1 
295 This operation retrieves a row of table SUPP_SCHED_PLAN_SUPPLY_TAB based on its ROWID. 1 1 27
296 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
297 This operation retrieves multiple ROWIDs by scanning index ORDER_QUOTATION_LINE_2_IX (ascending by key). 3 27 
298 This operation retrieves a row of table ORDER_QUOTATION_LINE_TAB based on its ROWID. 3 1 48
299 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
300 This operation retrieves all ROWIDs via a full index lookup of PROMISE_INVENTORY_ORDER_PK.  1 
301 This operation retrieves a row of table PROMISE_INVENTORY_ORDER_TAB based on its ROWID. 1 1 46
302 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
303 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.   
304 This operation yields the result of performing the query of views. 61 25 1000
305 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 62 25 1550
306  62 25 1550
307 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
308 This operation retrieves all rows of table INVENTORY_PART_PLANNING_TAB using a full table scan. 56 137844 3721788
309 This operation retrieves all rows of table MANUF_STRUCTURE_TAB using a full table scan. 107 132824 5844256
310 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 358 133076 9448396
311 This operation retrieves all rows of table PURCHASE_PART_SUPPLIER_TAB using a full table scan. 103 128836 3607408
312 This operation performs an anti join by taking its two child row sources and hashing their join columns to find row pairs which satisfy the join condition. 708 133076 13174524
313 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 1228 133674 19650078
314 This operation counts the number of rows in its child row source.   
315 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
316 This plan step has no supplementary description information.   
317 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
318 This operation retrieves all rows of table INVENTORY_PART_PLANNING_TAB using a full table scan. 56 137844 3721788
319 This operation retrieves all rows of table MANUF_STRUCTURE_TAB using a full table scan. 107 132824 5844256
320 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 358 133076 9448396
321 This operation retrieves all rows of table PURCHASE_PART_SUPPLIER_TAB using a full table scan. 103 128836 3607408
322 This operation performs an anti join by taking its two child row sources and hashing their join columns to find row pairs which satisfy the join condition. 708 133076 13174524
323 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 1228 133674 19650078
324 This operation counts the number of rows in its child row source.   
325 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition.   
326 This operation reorders the rows so that they are retrieved hierarchically (parent rows precede their children rows).   
327 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
328 This step in the plan designates this statement as a SELECT statement.
and
SELECT l.*
    FROM (SELECT ms.component_part, ip."DESCRIPTION", ms.qty_per_assembly, ipp.
                 mrp_order_code, ip.planner_buyer, ip.type_code, pps.vendor_no,
                 pps.vendor_manuf_leadtime, ipp.min_order_qty, ipp.
                 maxweek_supply period_order_quantity, ipp.safety_stock,
                 ifsapp.inventory_part_in_stock_api.GET_INVENTORY_QTY_ONHAND(
                 ms.contract, ms.component_part, NULL) qty_onhand,
                 ip.estimated_material_cost, (SELECT SUM(ex.qty_demand)
                                                  FROM ifsinfo.km_order_supply_demand_mfg ex
                                                  WHERE ex.date_required
                                                        BETWEEN TO_DATE(SYSDATE)
                                                         AND TO_DATE(
                                                        '01/05/2007',
                                                        'DD/MM/YYYY') + 1 - 1 /
                                                        ((60 * 60) * 24)
                                                    AND ex.part_no = ms.
                                                        component_part
                                                    AND ex.contract = ms.
                                                        contract
                                                  GROUP BY ex.part_no)
                 manu_sum_dmd, (SELECT SUM(ex.qty_demand)
                                    FROM ifsinfo.km_order_supply_demand_pur ex
                                    WHERE ex.date_required BETWEEN TO_DATE(
                                          SYSDATE) AND TO_DATE('01/05/2007',
                                          'DD/MM/YYYY') + 1 - 1 / ((60 * 60) *
                                          24)
                                      AND ex.part_no = ms.component_part
                                      AND ex.contract = ms.contract
                                    GROUP BY ex.part_no) purch_sum_dmd
              FROM ifsapp.manuf_structure ms, ifsapp.inventory_part ip, ifsapp.
                   inventory_part_planning ipp, ifsapp.purchase_part_supplier
                   pps
              WHERE ms.component_part = ip.part_no
                AND ms.contract = ip.contract
                AND ms.component_part = ipp.part_no
                AND ms.contract = ipp.contract
                AND ms.component_part = pps.part_no(+)
                AND ms.contract = pps.contract(+)
                AND NVL(pps.primary_vendor_db, 'Y') = 'Y'
              CONNECT BY PRIOR ms.component_part = ms.part_no
                     AND PRIOR ms.contract = ms.contract
                     AND ms.eff_phase_in_date <= SYSDATE
                     AND NVL(ms.eff_phase_out_date, SYSDATE) >= SYSDATE
              START WITH ms.part_no = 'K7501890'
                    AND ms.contract = 'OKMMN'
                    AND ms.bom_type = 'Manufacturing'
                    AND ms.eng_chg_level = '1') l
Get Explain Plan By:
   Cost All Rows
Execution Steps:
23  SELECT STATEMENT
22  VIEW
21  FILTER
20  CONNECT BY (WITH FILTERING)
9  FILTER
8  COUNT
7  HASH JOIN
1  TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP) 
6  HASH JOIN (OUTER)
4  HASH JOIN
2  TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP) 
3  TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP) 
5  TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP) 
19  HASH JOIN
10  CONNECT BY PUMP
18  COUNT
17  HASH JOIN
11  TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP) 
16  HASH JOIN (OUTER)
14  HASH JOIN
12  TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP) 
13  TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP) 
15  TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP) 
Step Description Est Cost Est Row Count Est Byte Count
1 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
2 This operation retrieves all rows of table INVENTORY_PART_PLANNING_TAB using a full table scan. 56 137844 3721788
3 This operation retrieves all rows of table MANUF_STRUCTURE_TAB using a full table scan. 107 132824 5844256
4 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 358 133076 9448396
5 This operation retrieves all rows of table PURCHASE_PART_SUPPLIER_TAB using a full table scan. 103 128836 3607408
6 This operation performs an anti join by taking its two child row sources and hashing their join columns to find row pairs which satisfy the join condition. 708 133076 13174524
7 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 1228 133674 19650078
8 This operation counts the number of rows in its child row source.   
9 This operation takes a row source and rejects some of the rows, returning the accepted rows.   
10 This plan step has no supplementary description information.   
11 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
12 This

I really do not understand.
If I use a simple example, it keeps the cost and explain plan the same.
Ie
SELECT part_no, "DESCRIPTION"
    FROM inventory_partand
SELECT l.*
    FROM (SELECT part_no, "DESCRIPTION"
              FROM inventory_part) lhave the same cost plan.
This is what I would have expected.
How can it change so dramatically in my other example?

Similar Messages

  • Unable To Select From SQL Server table with more than 42 columns

    I have set up a link between a Microsoft SQL Server 2003 database and an Oracle 9i database using Heterogeneous Services (HSODBC). It's working well with most of the schema I'm selecting from except for 3 tables. I don't know why. The common denominator between all the tables is that they all have at least 42 columns each, two have 42 columns, one has 56, and the other one, 66. Two of the tables are empty, one has almost 100k records, one has has 170k records. So I don't think the size of the table matters.
    Is there a limitation on the number of table columns you can select from through a dblink? Even the following statement errors out:
    select 1
    from "Table_With_42_Cols"@sqlserver_db
    The error message I get is:
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message [Generic Connectivity Using ODBC]
    ORA-02063: preceding 2 lines from sqlserver_db
    Any assistance would be greatly appreciated. Thanks!

    Not a very efficient and space friendly design to do name-value pairs like that.
    Other methods to consider is splitting those 1500 parameters up into groupings of similar parameters, and then have a table per group.
    Another option would be to use "vertical table partitioning" (as oppose to the more standard horizontal partitionining provided by the Oracle partition option) - this can be achieved (kind of) in Oracle using clusters.
    Sooner or later this name-value design is going to bite you hard. It has 1500 rows where there should be only 1 row. It is not scalable.. and as you're discovering, it is unnatural to use. I would rather change that table and design sooner than later.

  • Tuning PL/SQL - tkprof shows much more work for RECURSIVE STATEMENTS

    Hi,
    Firstly I'm not sure if this should be in "Database - General" or "SQL and PL/SQL". Since it's more of a performance tuning question than specifically about the PL/SQL, I'm going to put it here in "Database - General". I hope that doesn't offend anyone.
    I've just started looking at a reported performance problem in our app. One of the developers set me up a procedure that replicates the issue, I ran it while tracing the session and then fed the trace file to tkprof. The results at the bottom of my tkprof output file look like this:
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        3      0.01       0.07         10         60          0           0
    Execute      3      0.01       0.01          0          3          0           3
    Fetch        0      0.00       0.00          0          0          0           0
    total        6      0.03       0.08         10         63          0           3
    Misses in library cache during parse: 1
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       5        0.00          0.00
      SQL*Net message from client                     4        1.68          1.70
      db file sequential read                        18        0.01          0.10
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse      416      0.00       0.01          0          0          2           0
    Execute   1456      0.71       0.75         26       1739        425         590
    Fetch     2932      0.12       2.21        337       6338          0        3061
    total     4804      0.84       2.98        363       8077        427        3651
    Misses in library cache during parse: 25
    Misses in library cache during execute: 24
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file sequential read                       343        0.08          2.09
      db file scattered read                          1        0.00          0.00
       47  user  SQL statements in session.
      888  internal SQL statements in session.
      935  SQL statements in session.
       31  statements EXPLAINed in this session.I'm looking in particular at that relatively high activity for RECURSIVE STATEMENTS, because to me, the NON-RECURSIVE (ie the actual submitted statements that form our code) looks pretty harmless. This is my first experience of trying to tune some complex looking PL/SQL and I've no idea what could be considered more "normal", but from what I think I know, and google searches, the results look quite odd to me.
    Is this high activity for RECURSIVE STATEMENTS a problem, and if so, what should I start looking at to reduce that activity?
    Regards,
    Ados

    If you have a PLSQL block or stored procedure running SQL statements, the SQL statements, too, will appear as RECURSIVE STATEMENTS in the trace file and tkprof.
    It is a misconception that RECURSIVE STATEMENTS are only SYS statements doing data dictionary lookups / updates.
    For example, I ran this :
    SQL> create or replace procedure test_procedure as
      2  begin
      3  insert into my_emp_table select * from my_emp_table;
      4  dbms_output.put_line('Rows Inserted :  ' || sql%rowcount);
      5  insert into my_emp_table select * from my_emp_table where emplid=1;
      6  dbms_output.put_line('Rows Inserted :  ' || sql%rowcount);
      7  end;
      8  /
    Procedure created.
    SQL> alter session set events '10046 trace name context forever, level 8';
    Session altered.
    SQL> execute test_procedure;
    PL/SQL procedure successfully completed.
    SQL> commit;
    Commit complete.
    SQL> select 'x' from dual;
    x
    SQL> exitThe tkprof shows ;
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        3      0.00       0.00          0          0          0           0
    Execute      3      0.00       0.00          0          0          1           1
    Fetch        2      0.00       0.00          0          0          0           1
    total        8      0.00       0.00          0          0          1           2
    Misses in library cache during parse: 2
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       5        0.00          0.00
      SQL*Net message from client                     5        5.31         11.97
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        4      0.00       0.00          0          2          0           0
    Execute      4      0.00       0.00          2         16          7           5
    Fetch        2      0.00       0.00          0         14          0           2
    total       10      0.01       0.01          2         32          7           7
    Misses in library cache during parse: 2
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      db file sequential read                         2        0.00          0.00
        7  user  SQL statements in session.
        0  internal SQL statements in session.
        7  SQL statements in session.Which were the Non-Recursive statements ?
    BEGIN test_procedure; END;
    commit
    select 'x' from  dualWhich were the RECURSIVE statements (which you can identify by the keywords : (recursive depth) ?
    SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
      NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
      NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
      NVL(SUM(C2),:"SYS_B_1")
    FROM
    (SELECT /*+ NO_PARALLEL("MY_EMP_TABLE") FULL("MY_EMP_TABLE")
      NO_PARALLEL_INDEX("MY_EMP_TABLE") */ :"SYS_B_2" AS C1, :"SYS_B_3" AS C2
      FROM "MY_EMP_TABLE" "MY_EMP_TABLE") SAMPLESUB
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        1      0.00       0.00          0          7          0           1
    total        3      0.00       0.00          0          7          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 64     (recursive depth: 2)
    INSERT INTO MY_EMP_TABLE SELECT * FROM MY_EMP_TABLE
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          1          0           0
    Execute      1      0.00       0.00          2          8          4           3
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          2          9          4           3
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 64     (recursive depth: 1)
    SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
      NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
      NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
      NVL(SUM(C2),:"SYS_B_1")
    FROM
    (SELECT /*+ IGNORE_WHERE_CLAUSE NO_PARALLEL("MY_EMP_TABLE")
      FULL("MY_EMP_TABLE") NO_PARALLEL_INDEX("MY_EMP_TABLE") */ :"SYS_B_2" AS C1,
      CASE WHEN "MY_EMP_TABLE"."EMPLID"=:"SYS_B_3" THEN :"SYS_B_4" ELSE
      :"SYS_B_5" END AS C2 FROM "MY_EMP_TABLE" "MY_EMP_TABLE") SAMPLESUB
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        1      0.00       0.00          0          7          0           1
    total        3      0.00       0.00          0          7          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 64     (recursive depth: 2)
    INSERT INTO MY_EMP_TABLE SELECT * FROM MY_EMP_TABLE WHERE EMPLID=1
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          1          0           0
    Execute      1      0.00       0.00          0          8          3           2
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          9          3           2
    Misses in library cache during parse: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 64     (recursive depth: 1)The INSERT statments are recursive depth 1 while the SELECTS they cause are recursive depth 2.
    Note that neither of these are are actually SYS statements agaisnt the data dictionary !!
    Edit :
    IF you read the last few lines, it would become evident that some (in my case all) the RECURSIVE STATEMENTS are non-SYS statements, actually being my code, not Oracle's code.
           1  session in tracefile.
           7  user  SQL statements in trace file.
           0  internal SQL statements in trace file.
           7  SQL statements in trace file.
           7  unique SQL statements in trace file.
          87  lines in trace file.
           6  elapsed seconds in trace file.I have 3 non-recursive and 4 "RECURSIVE" statements. All 7 are correctly identified as "user SQL statements in trace file".
    Hemant K Chitale
    http://hemantoracledba.blogspot.com
    Edited by: Hemant K Chitale on Jul 29, 2009 11:44 PM
    Edited by: Hemant K Chitale on Jul 29, 2009 11:47 PM

  • Fetching from SQL 2012

    Hi folks,
    We are using  Oracle application 12.1.1 , Database version 10.2.0.4 on Solaris 10 plaform, and we have Micorsoft SQl server 2012 Database on windows
    2008 server  service pack 2.
    i have created the same tables which i need  to fetching data from SQL server database to EBS application i mean oracle Database
    So my question is here how can i fetch the data from  Oracle application  and load into Oracle Database from SQL 2012.
    can one suggest me or give any link which tell about details steps.
    thanks & Regards.

    Hi,
       There are 2 different ways you could do this.
    1. You could use an Oracle Gateway product - either Database Gateway for SQL*Server (Dg4MSQL) or Database Gateway for ODBC (Dg4ODBC) - and use SQL to select from the SQL*Server tables and put into Oracle tables.
    If you have access to My Oracle Support then the following note has links to further details -
    Master Note for Oracle Gateway Products (Doc ID 1083703.1)
    or this link if you do not -
    Oracle Database Gateways
    2. Oracle GoldenGate
    This can automatically replicate data from SQL*Server to Oracle or vice versa if necessary.
    See here for further details -
    Oracle GoldenGate
    Regards,
    Mike

  • "Select * into table internal_table from database_table" in native SQL

    Dear All,
    Is it possible to insert into internal table from database table in native sql instead of open sql? Regarding single values it's clear, just to use ":variable_name". But how to map internal table? RDBMS Oracle version > 9. If it's possible and you know how to do it, please, give some code example.
    Thank you,
    Pavel

    Hi ,
    Here is the code snippet for the native sql .
    select * from zwf_role into table i_wfroles." where role_id ='CAO'.
      loop at i_wfroles into wa_wfroles.
        EXEC sql.
          insert into   ROLES_MASTER_SAP
                 values (:wa_wfroles-ROLE_ID,:wa_wfroles-ROLE_NM,
                        :wa_wfroles-ROLE_DESC,:wa_wfroles-PAR_ROLE_ID,
                        :wa_wfroles-WF_ROLE_ORDER,:wa_wfroles-ROLE_TYPE )
        ENDEXEC.
        if sy-subrc = 0 .
          suc_rec_cnt = suc_rec_cnt + 1.
        else.
          fail_rec_cnt = fail_rec_cnt + 1.
        endif.
    *              ( ROLE_ID,ROLE_NAME, ROLE_DESC,PARENT_ROLE_ID,ROLE_ORDER,
    *                  ROLE_TYPE )
      endloop.
    zwf_role database table has the same files
    Regards
    Girish

  • No rows returned by spatial query wrapped in SELECT * FROM ...

    Hi,
    I'm getting some really weird behaviour when running a sub query with SDO_EQUAL. The SDO_EQUAL query on its own works fine, but if I wrap it in SELECT * FROM then I get no results. If I wrap SDO_ANYINTERACT in SELECT * FROM then I get the expected result.
    It looks like the spatial index is used when running the regular SDO_EQUAL query, but not when wrapped in SELECT * FROM. Weird. The spatial index is also not used when SDO_ANYINTERACT is wrapped in SELECT * FROM... so I'm not sure why that returns the right answer.
    I am getting this problem on 11.2.0.2 on Red Hat Linux 64bit and 11.2.0.1 on Windows XP 32bit (that's all the 11g versions I've tried). The query works as expected on 10.2.0.5 on Windows Server 2003 64bit.
    Any ideas?
    Confused in Dublin (John)
    Test case...SQL>
    SQL> -- Create a table and insert the same geometry twice
    SQL> DROP TABLE sdo_equal_query_test;
    Table dropped.
    SQL> CREATE TABLE sdo_equal_query_test (
      2  id NUMBER,
      3  geometry SDO_GEOMETRY);
    Table created.
    SQL>
    SQL> INSERT INTO sdo_equal_query_test VALUES (1,
      2  SDO_GEOMETRY(3003, 81989, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1),
      3  SDO_ORDINATE_ARRAY(1057.39, 1048.23, 4, 1057.53, 1046.04, 4, 1057.67, 1043.94, 4, 1061.17, 1044.60, 5, 1060.95, 1046.49, 5, 1060.81, 1047.78, 5, 1057.39, 1048.23, 4)));
    1 row created.
    SQL>
    SQL> INSERT INTO sdo_equal_query_test VALUES (2,
      2  SDO_GEOMETRY(3003, 81989, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1),
      3  SDO_ORDINATE_ARRAY(1057.39, 1048.23, 4, 1057.53, 1046.04, 4, 1057.67, 1043.94, 4, 1061.17, 1044.60, 5, 1060.95, 1046.49, 5, 1060.81, 1047.78, 5, 1057.39, 1048.23, 4)));
    1 row created.
    SQL>
    SQL> -- Setup metadata
    SQL> DELETE FROM user_sdo_geom_metadata WHERE table_name = 'SDO_EQUAL_QUERY_TEST';
    1 row deleted.
    SQL> INSERT INTO user_sdo_geom_metadata VALUES ('SDO_EQUAL_QUERY_TEST','GEOMETRY',
      2  SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', 0, 100000, .0001), SDO_DIM_ELEMENT('Y', 0, 100000, .0001), SDO_DIM_ELEMENT('Z', -100, 4000, .0001))
      3  ,81989);
    1 row created.
    SQL>
    SQL> -- Create spatial index
    SQL> DROP INDEX sdo_equal_query_test_spind;
    DROP INDEX sdo_equal_query_test_spind
    ERROR at line 1:
    ORA-01418: specified index does not exist
    SQL> CREATE INDEX sdo_equal_query_test_spind ON sdo_equal_query_test(geometry) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
    Index created.
    SQL>
    SQL> -- Ensure data is valid
    SQL> SELECT sdo_geom.validate_geometry_with_context(sdo_cs.make_2d(geometry), 0.0001) is_valid
      2  FROM sdo_equal_query_test;
    IS_VALID
    TRUE
    TRUE
    2 rows selected.
    SQL>
    SQL> -- Check query results using sdo_equal
    SQL> SELECT b.id
      2  FROM sdo_equal_query_test a, sdo_equal_query_test b
      3  WHERE a.id = 1
      4  AND b.id != a.id
      5  AND sdo_equal(a.geometry, b.geometry) = 'TRUE';
            ID
             2
    1 row selected.
    SQL>
    SQL> -- Check query results using sdo_equal wrapped in SELECT * FROM
    SQL> -- Results should be the same as above, but... no rows selected
    SQL> SELECT * FROM (
      2       SELECT b.id
      3       FROM sdo_equal_query_test a, sdo_equal_query_test b
      4       WHERE a.id = 1
      5       AND b.id != a.id
      6       AND sdo_equal(a.geometry, b.geometry) = 'TRUE'
      7  );
    no rows selected
    SQL>
    SQL> -- So that didn't work.  Now try sdo_anyinteract... this works ok
    SQL> SELECT * FROM (
      2       SELECT b.id
      3       FROM sdo_equal_query_test a, sdo_equal_query_test b
      4       WHERE a.id = 1
      5       AND b.id != a.id
      6       AND sdo_anyinteract(a.geometry, b.geometry) = 'TRUE'
      7  );
            ID
             2
    1 row selected.
    SQL>
    SQL> -- Now try a scalar query
    SQL> SELECT * FROM (
      2       SELECT b.id
      3       FROM sdo_equal_query_test a, sdo_equal_query_test b
      4       WHERE a.id = 1
      5       AND b.id != a.id
      6  );
            ID
             2
    1 row selected.
    SQL> spool offHere's the explain plan for the query that works. Note that the spatial index is used.
    SQL> EXPLAIN PLAN FOR
      2  SELECT b.id
      3  FROM sdo_equal_query_test a, sdo_equal_query_test b
      4  WHERE a.id = 1
      5  AND b.id != a.id
      6  AND sdo_equal(a.geometry, b.geometry) = 'TRUE';
    Explained.
    SQL> @?/rdbms/admin/utlxpls.sql
    PLAN_TABLE_OUTPUT
    Plan hash value: 3529470109
    | Id  | Operation                     | Name                       | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT              |                            |     1 |  7684 |     3   (0)| 00:00:01 |
    |   1 |  RESULT CACHE                 | f5p63r46pbzty4sr45td1uv5g8 |       |       |            |       |
    |   2 |   NESTED LOOPS                |                            |     1 |  7684 |     3   (0)| 00:00:01 |
    |*  3 |    TABLE ACCESS FULL          | SDO_EQUAL_QUERY_TEST       |     1 |  3836 |     3   (0)| 00:00:01 |
    |*  4 |    TABLE ACCESS BY INDEX ROWID| SDO_EQUAL_QUERY_TEST       |     1 |  3848 |     3   (0)| 00:00:01 |
    |*  5 |     DOMAIN INDEX              | SDO_EQUAL_QUERY_TEST_SPIND |       |       |     0   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - filter("B"."ID"!=1)
       4 - filter("A"."ID"=1 AND "B"."ID"!="A"."ID")
       5 - access("MDSYS"."SDO_EQUAL"("A"."GEOMETRY","B"."GEOMETRY")='TRUE')
    ..... other stuff .....     Here's the explain plan for the query that does not work. Note that the spatial index is not used.
    SQL> EXPLAIN PLAN FOR
      2  SELECT * FROM (
      3     SELECT b.id
      4     FROM sdo_equal_query_test a, sdo_equal_query_test b
      5     WHERE a.id = 1
      6     AND b.id != a.id
      7     AND sdo_equal(a.geometry, b.geometry) = 'TRUE'
      8  );
    Explained.
    SQL> @?/rdbms/admin/utlxpls.sql
    PLAN_TABLE_OUTPUT
    Plan hash value: 1024466006
    | Id  | Operation           | Name                       | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT    |                            |     1 |  7684 |     6   (0)| 00:00:01 |
    |   1 |  RESULT CACHE       | 2sd35wrcw3jr411bcg3sz161f6 |       |       |            |          |
    |   2 |   NESTED LOOPS      |                            |     1 |  7684 |     6   (0)| 00:00:01 |
    |*  3 |    TABLE ACCESS FULL| SDO_EQUAL_QUERY_TEST       |     1 |  3836 |     3   (0)| 00:00:01 |
    |*  4 |    TABLE ACCESS FULL| SDO_EQUAL_QUERY_TEST       |     1 |  3848 |     3   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - filter("B"."ID"!=1)
       4 - filter("A"."ID"=1 AND "B"."ID"!="A"."ID" AND
                  "MDSYS"."SDO_EQUAL"("A"."GEOMETRY","B"."GEOMETRY")='TRUE')
    ..... other stuff .....               

    That looks like a bug to me. As a workaround, you can materialize the inline view by adding rownum>0. Please see the reproduction and workaround below.
    SCOTT@orcl_11gR2> SELECT *
      2  FROM   (SELECT b.id
      3            FROM   sdo_equal_query_test a, sdo_equal_query_test b
      4            WHERE  a.id = 1
      5            AND    b.id != a.id
      6            AND    sdo_equal (a.geometry, b.geometry) = 'TRUE')
      7  /
    no rows selected
    Execution Plan
    Plan hash value: 1024466006
    | Id  | Operation          | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |                      |     1 |  7676 |     6   (0)| 00:00:01 |
    |   1 |  NESTED LOOPS      |                      |     1 |  7676 |     6   (0)| 00:00:01 |
    |*  2 |   TABLE ACCESS FULL| SDO_EQUAL_QUERY_TEST |     1 |  3832 |     3   (0)| 00:00:01 |
    |*  3 |   TABLE ACCESS FULL| SDO_EQUAL_QUERY_TEST |     1 |  3844 |     3   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - filter("B"."ID"<>1)
       3 - filter("A"."ID"=1 AND "B"."ID"<>"A"."ID" AND
                  "MDSYS"."SDO_EQUAL"("A"."GEOMETRY","B"."GEOMETRY")='TRUE')
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2> SELECT *
      2  FROM   (SELECT b.id
      3            FROM   sdo_equal_query_test a, sdo_equal_query_test b
      4            WHERE  a.id = 1
      5            AND    b.id != a.id
      6            AND    sdo_equal (a.geometry, b.geometry) = 'TRUE'
      7            AND    ROWNUM > 0)
      8  /
            ID
             2
    1 row selected.
    Execution Plan
    Plan hash value: 2329953927
    | Id  | Operation                       | Name                       | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                |                            |     1 |    13 |     3   (0)| 00:00:01 |
    |   1 |  VIEW                           |                            |     1 |    13 |     3   (0)| 00:00:01 |
    |   2 |   COUNT                         |                            |       |       |            |          |
    |*  3 |    FILTER                       |                            |       |       |            |          |
    |   4 |     NESTED LOOPS                |                            |     1 |  7676 |     3   (0)| 00:00:01 |
    |*  5 |      TABLE ACCESS FULL          | SDO_EQUAL_QUERY_TEST       |     1 |  3832 |     3   (0)| 00:00:01 |
    |*  6 |      TABLE ACCESS BY INDEX ROWID| SDO_EQUAL_QUERY_TEST       |     1 |  3844 |     3   (0)| 00:00:01 |
    |*  7 |       DOMAIN INDEX              | SDO_EQUAL_QUERY_TEST_SPIND |       |       |     0   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - filter(ROWNUM>0)
       5 - filter("B"."ID"<>1)
       6 - filter("A"."ID"=1 AND "B"."ID"<>"A"."ID")
       7 - access("MDSYS"."SDO_EQUAL"("A"."GEOMETRY","B"."GEOMETRY")='TRUE')
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2>

  • How to exit from SQL*Plus based on the return value of a SQL select stment?

    Hi
    I have a SQL script executed from SQL*Plus. I would like to know if SQL*Plus
    supports any kind of branching or exiting from script execution based on a
    returned value of a SQL select statement. I am on 9i.
    Regards,
    Tamas Szecsy

    in sqlplus, you have whenever
    ex:
    whenever sqlerror exit failure
    insert into ...
    -- if this fails, then you will be out
    insert into ...
    -- if this fails, then you will be out
    whenever sqlerror continue
    insert into ...
    -- if this fails, this continues
    insert into ...and you have PL/SQL
    declare x number;
    begin
    select count(*) into x from emp;
    if (x=14) then null; end if;
    end;
    /note that you can mix those in some case
    -- exit if there is no row in emp
    whenever sqlerror exit 1
    var dummy number
    exec select count(*) into :dummy from emp having count(*)!=0

  • Select *, rowid into var1, var2 from...

    Hello,
    as mentioned in the subject, I want to do the following in plsql:
    var1 table%rowtype;
    var2 rowid;
    select *, rowid into var1, var2 from table where ...;
    So this is not possible yet, what else can I do instead as I ...
    1. don't want to split one select statement into two.
    2. don't know the columns of the table at compile time.
    3. would like to use the rowtype, if possible.
    Any ideas?
    Thanx a lot
    Matthias

    If you do not know the columns at compile-time then how is your update-statement working? Is that getting generated dynamically too? And are your updating all the columns in the table?
    PS: Btw, you can declare a cursor and have a %rowtype variable based on that. Like this:
    declare
        cursor c1
        is
        select t.*,
               t.rowid
        from   table1  t
        r_cursor     c1%rowtype;
    begin
        for r_cursor in c1
        loop
            dbms_output.put_line ( 'Col2: [' || r_cursor.col2 || ']' );
            update table1
            set    col2 = r_cursor.col2 + 10
            where  table1.rowid = r_cursor.rowid
        end loop;
    end;
    /

  • Limit users to execute "SELECT" statemes only from SQL Developer

    Hi:
    Is there a way to control what SQL command can be executed from SQL Developer?
    I am trying to limit users to execute "SELECT" statements only from SQL Developer.
    I believe SQL*Plus used to have the product profile where I can control what SQL command can be executed from what user.
    Thanks in advance.

    There's nothing special in sqldev to enforce privileges, the database does all that already. See the database documentation on the GRANT and REVOKE statements. Basically, you would only want to grant SELECT privileges to your users...
    Have fun,
    K.

  • Select from SQL Server Activity

    Hi,
    I'm using the Select from SQL Server Activity in CPO to look up some values in a table, straightforward SQL queries like select * from Table work 100% but when I start applying a WHERE clause to the query it fails to return the results even though when running query in SQL studio it returns results successfully.
    The issue seems to be when trying to use brackets in a OR statement:
    The SQL Statement is:
    SELECT AppName FROM METADaaS WHERE
    NCCX NOT LIKE '%18421%'
    AND RTYPE='A'
    AND BUNDLEDWITH LIKE '%GOL Back Office%'
    AND (NCC = '0' OR NCC LIKE '%18421%')
    This returns no results in CPO but in SQL Studio returns the results as expected.
    If I remove the "(NCC = '0' OR NCC LIKE '%18421%')" I get results in CPO.
    thanks

    Any SQL statement should work.  I would suggest you open a TAC case.

  • How to select data from Sql server 2005 database tableinto oracle database table

    Hi,
    I have table text1 in sql server database and text2 in oracle database (11g). Now how to move data from SQL Server table into oracle table. So please help me how to do it.
    Thanks a lot in advance.
    rk
    OS: Windows 7 professional

    Hi,
    you can use export/import wizard and specify sql server as a source and oracle as destination.
    I hope this is helpful.
    Please Mark it as Answered if it answered your question
    OR mark it as Helpful if it help you to solve your problem
    Elmozamil Elamir Hamid
    MCSE Data Platform
    MCITP: SQL Server 2008 Administration/Development
    MCSA SQL Server 2012
    MCTS: SQL Server Administration/Development
    MyBlog

  • Reading milliseconds from Sql server into oracle 10g

    Hi,
    We have a very time sensitive pressing requirements to be addressed immediately.
    We need to read the date time column from sql server 2008 into oracle 10g.
    We have a dblink established between the two servers and have tried to use sql server and sql native client 10 driver to read the dates from sql into oracle.This we are able to do very successfully.
    The issue is in reading milliseconds stored in sql server.The millisecond part comes in as 00000 from sqlserver to oracle.These milliseconds are needed to identlfy the unique records.
    For instance
    SQL SERVER Oracle
    source_id source id
    01/01/2012 6:30:35:456 01/01/2012 6:30:35:000000.
    Im issuing my query through Toad via Oracle to remote sql server using a dblink which connects using HS ODBC connection to sql server 2008(remote).
    We have no control over sql server Db as this is remote third party DB.We just have select access to their tables to bring into our own oracle DB.
    Any insight or help will be much appreciated.

    Hi,
    Could you please send the following information -
    - what version of HSODBC are you using ? Is it a 10.2 version ?
    - what is the SQL*Server datatype of the column you are reading ?
    - from Oracle could you issue -
    describe sql_server_table@hsodbc
    - what is the Oracle datatype shown for the column ?
    Could you also run your tests using SQLPLUS instead of TOAD ? We don't support TOAD and need to know if the problem also happens when using SQLPLUS, to avoid it being a TOAD problem.
    Also, 10.2 HSODBC is now desupported and you should be using the 11g Database Gateway for ODBC (DG4ODBC) which is a direct replacement for HSODBC. To use DG4ODBC your RDBMS needs to be at 10.2.0.4 or higher and DG4ODBC should be installed in a completely separate ORACLE_HOME from the existing 10.2 install.
    Regards,
    Mike

  • Problems with loading source model using omw from sql server 7 into oracle 9i

    I am migrating data from sql servr 7 into oracle 9i. when doing capture phase i get the following error.
    ==>failed to load source model.[microsoft][odbc sql server][sql server]select permission
    denied on column 'password' of object 'syslogins', database master, owner dbo.
    Why is this so...is it bcz of something with my odbc link...
    also is there any way to load only tables and not system tables when doing capture phase.
    any help asap will be much appreciated.
    thanks

    Hi,
    You must ensure that you have the correct password to login to SQL Server.
    The Workbench requires some of the tables in the Master database.
    Regards
    John

  • Importing Database from SQL Server into Oracle 8i

    Hello Friends,
    Cuurentlly we are using SQL Server as our application database, Now we want to switch on at Oracle 8i,bcz of some problems,
    If anybody had done so,then please help me in solving this problem,
    I wana Import whole database from SQL server to Oracle
    Lot of thanks

    Hi,
    Use the SQL Server Enterprise Manager to export all the tables from SQL to oralce.
    When selecting the target database use the Oracle native driver (the name is not on top of my head) and not the ODBC one.
    You will have problems with datatypes. Make sure to edit the mappings for the proper datatype if required.
    If you have ntext columns, make sure they are translated to CLOB and not long.
    Regards,
    Wasim.

  • Sql data into Existing PDF from ASP page

    I have a property form that was created use Adobe Pro X with various data fields, and a signature block. How can I get that form to get data from SQL database, then either print it out or email to the user for digital signature. So on this webpage you select
    the user, and there would be buttons to generate a property form for print out or email the pdf for digital signature then the user would email that back.
    thanks in advance.

    I have a property form that was created use Adobe Pro X with various data fields, and a signature block. How can I get that form to get data from SQL database, then either print it out or email to the user for digital signature. So on this webpage you select
    the user, and there would be buttons to generate a property form for print out or email the pdf for digital signature then the user would email that back.
    thanks in advance.
    Hi,
    I am afraid that for web development issues, please post them in
    https://forums.asp.net forum since it is dedicated for issues about web development issues.
    And you could have a check the following thread.
    http://forums.asp.net/t/1317979.aspx?Writing+PDF+documents+using+VB+Net
    Thanks for your understanding.
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

Maybe you are looking for

  • How to connect my Mac to the tv screen

    Can someone explain to me how I can watch on the (big) tv screen the downloaded content from my laptop?

  • Date range sunday to monday

    Hello experts; I would like to design a date range query where the beginning of the week is always sunday and the end of the week is always monday. All help is appreciated. Thank you

  • Granting Privileges.

    Hi all, I have created user A.I want A to SELECT,INSERT,UPDATE the tables of user B,but A should not have DELETE privis. For granting this privilege. If i give GRANT SELECT ANY TABLE TO USER A.? for SELECTing tables.. Is it right or will the user be

  • [SOLVED] Default Gnome File Manager

    Hello, I installed Thunar and it has become the default file manager in Gnome, how can I change this back to Nautalis? Thanks. Last edited by RAH (2009-02-16 20:10:26)

  • Problems upgrading my ac OS X 10.5 to OS X 10.5.7

    whwnever i try to upgrade my mac it get stuck while preparing to install, the blue bar does not move, even if i let it there for a day or so...