Oracle OCP考试补充题目解析

4星 · 超过85%的资源 需积分: 10 10 下载量 66 浏览量 更新于2024-09-08 收藏 88KB DOC 举报
"071题库补充题,包含了与Oracle Certified Professional (OCP) 认证相关的数据库操作题目,适合备考者参考学习。" 在这些题目中,我们可以看到两个关键知识点,它们都是关于Oracle SQL的: 1. 计算日期差: 题目要求计算从2007年1月1日到当前日期的天数。在Oracle SQL中,计算日期差的方式有多种。选项B和C是正确的方法,因为它们使用了`TO_DATE`函数将字符串转换为日期,然后减去当前日期(`SYSDATE`)来得到差值。选项A直接用字符串与`SYSDATE`做减法是不正确的,而D和E中的`TO_CHAR`和`TO_DATE`的混合使用也是无效的,因为它们是在字符串级别进行操作而不是日期级别。 正确的SQL语句应该是这样的: ```sql SELECT SYSDATE - TO_DATE('01-JAN-2007', 'DD-MON-RRRR') FROM DUAL; ``` 这里,我们使用`TO_DATE`函数指定日期格式为'DD-MON-RRRR',确保正确解析日期字符串。 2. 使用CASE表达式和子查询: 第二个题目涉及到了`CASE`表达式和子查询的使用。`CASE`表达式用于根据条件返回不同的值。在这个例子中,它检查促销活动 (`promotions` 表) 的 `promo_cost` 是否高于 'TV' 类别促销的平均成本。子查询 `(SELECT AVG(promo_cost) FROM promotions WHERE promo_category='TV')` 用于获取这个平均值。 选项A是正确的,因为这个SQL语句会显示所有促销活动的 `promo_name` 和根据成本计算出的 `COST_REMARK`('HIGH' 或 'LOW')。子查询不会导致错误,且可以与 `CASE` 表达式一起使用,所以选项B和D是错误的。选项C错误地认为结果只针对 'TV' 类别的促销。 这两个题目反映了在OCP认证考试中可能会遇到的日期处理和复杂查询的场景,备考者需要熟悉Oracle SQL的这些核心概念和语法。