第17题
The PHYSICIAN table contains these columns:
PHYSICIAN_ID NUMBER NOT NULL PK
LAST_NAME VARCHAR2(30) NOT NULL
FIRST_NAME VARCHAR2(25) NOT NULL
LICENSE_NO NUMBER(7) NOT NULL
HIRE_DATE DATE
When new physician records are added, the PHYSICIAN_ID is assigned a sequential value using the PHY_NUM_SEQ sequence. The state licensing board assigns license numbers with valid license numbers being from 1000000 to 9900000. You want to create an INSERT statement that will prompt the user for each physician’s name and license number and insert the physician’s record into the PHYSICIAN table with a hire date of today. The statement should generate an error if an invalid license number is entered.
Which INSERT statement should you use?
(A) INSERT INTO physician VALUES (phy_num_seq.NEXTVAL, ’&lname’, ’&fname’, &lno, sysdate) WHERE &lno BETWEEN 1000000 and 9900000;
(B) INSERT INTO physician VALUES (phy_num_seq.NEXTVAL, ’&lname’, ’&fname’, &lno BETWEEN 1000000 and 9900000, sysdate);
(C) INSERT INTO (SELECT physician_id, last_name, first_name, license_no, hire_date FROM physician WHERE license_no BETWEEN 1000000 and 9900000 WITH CHECK OPTION) VALUES (phy_num_seq.VALUE, ’&lname’, ’&fname’, &lno, sysdate);
(D) INSERT INTO (SELECT physician_id, last_name, first_name, license_no, hire_date FROM physician WHERE license_no BETWEEN 1000000 and 9900000 WITH CHECK OPTION) VALUES (phy_num_seq.NEXTVAL, ’&lname’, ’&fname’, &lno, sysdate);
这道题为什么选D,为什么不选A,选D是不是把数据插入到select新建的暂存表中了,还是插入到Physician表中?
|