HELP why will the statement update all the order_date to Sysdate?

From: OracleDream <fateuk.w_at_googlemail.com>
Date: Tue, 24 Jun 2008 23:43:35 -0700 (PDT)
Message-ID: <7efaef15-7bd3-448a-9489-3beea277c7a6@e39g2000hsf.googlegroups.com>


I am preparing for 1z0--047 now. There is one question I can not understand.

View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.

Orders

NAME NULL? TYPE
order_id not null number(12)
order_date date
customer_id number(6)
order_total number(8,2)

Order_Items

NAME NULL? TYPE
order_id not null number(3)
product_id not null number(2)
qty number(6,2)
unit_price number(8,2)

In the ORDERS table, ORDER_ID is the PRIMARY KEY and ORDER_DATE has the DEFAULT value as SYSDATE.

Evaluate teh following statement:

UPDATE orders
SET order_date=DEFAULT
WHERE order_id IN (SELECT order_id FROM order_items WHERE qty IS NULL);

What would be the outcome of the above statement?

  1. The UPDATE statement would not work because the main query and the subquery use different tables.
  2. The UPDATE statement would not work because the DEFAULT value can be used only in INSERT statements.
  3. The UPDATE statement would change all ORDER_DATE values to SYSDATE provided the current ORDER_DATE is NOT NULL and QTY is NULL.
  4. The UPDATE statement would change all the ORDER_DATE values to SYSDATE irrespective of what the current ORDER_DATE value is for all orders where QTY is NULL.

The answer is D. I don't get it. I tested this statement serveral times. the answer should be C ( at least C is the closest question)

Please help, guys! Received on Wed Jun 25 2008 - 01:43:35 CDT

Original text of this message