Oracle Ocp题目

[复制链接]
查看11 | 回复3 | 2010-6-29 13:40:11 | 显示全部楼层 |阅读模式
第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表中?

回复

使用道具 举报

千问 | 2010-6-29 13:40:11 | 显示全部楼层
要求是 插入非法号时要产生错误,故选择DA不会产生错误提示,最多是没插入
回复

使用道具 举报

千问 | 2010-6-29 13:40:11 | 显示全部楼层
The statement should generate an error if an invalid license number is entered.这句估计你没注意看,要求是要产生错误。
回复

使用道具 举报

千问 | 2010-6-29 13:40:11 | 显示全部楼层
INSERT不可以接WHERE条件,所以A会出错D是插入Physician表中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行