Oracle OCP认证考试考点详解082系列08

题记:

本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。

36. 第36题:

  1. 题目
    36.Examine this command:

  2. 解析及答案:
    查看以下这条命令。以下哪两个陈述是正确的?
    A. 在执行此命令期间,可以对在此数据文件中有一个或多个区(extents)的表执行数据操作语言(DML)操作。
    B. 在默认情况下,它会覆盖在 /u02 目录下名为 SALES02.DBF 的任何现有文件。
    C. 在执行此命令期间,可以查询在此数据文件中有一个或多个区的表。
    D. 在移动之后,SALES01.DBF 中的压缩对象在 SALES02.DBF 中将会被解压。
    E. 即使使用了 Oracle 管理文件(OMF),也必须指定包含新文件名的 "To" 子句。
    选项 A:
    如果执行的命令是在移动数据文件,一些数据库允许在特定条件下对涉及的数据表执行有限的 DML 操作。例如,某些数据库在数据文件移动过程中,只要数据的底层存储机制能够处理并发的读写操作,就可以允许 DML。这可能取决于数据库的具体实现和配置。所以这个选项有一定的可能性是正确的。
    选项 B:
    正常情况下,数据文件操作命令不会默认覆盖已有的文件。这是为了防止数据丢失等意外情况。所以该选项错误。
    选项 C:
    在数据文件执行命令期间,对有数据区在这个数据文件中的表进行查询通常是允许的。因为查询操作是只读的,一般不会干扰命令的执行过程,就像在备份数据文件等操作过程中,也可以进行查询一样。所以该选项正确。
    选项 D:
    移动数据文件本身通常不会改变文件内对象的压缩状态。压缩属性是和对象本身相关的,而不是因为文件位置的改变而改变。所以该选项错误。
    选项 E:
    当使用 Oracle 管理文件(OMF)时,很多时候文件名等细节是由系统自动管理的,不一定需要手动指定 "To" 子句。所以该选项错误。
    正确答案是 AC。

37. 第37题:

  1. 题目
  2. 解析及答案:
    关于替换变量,以下哪两个陈述是正确的?
    A. 用于提示输入列名的替换变量必须用双引号括起来。
    B. 以 "&" 为前缀的替换变量在一个会话中对一个值只会提示一次。
    C. 用于提示输入列名的替换变量必须用单引号括起来。
    D. 以 "&&" 为前缀的替换变量在一个会话中对一个值只会提示一次,除非在该会话中将其设置为未定义状态。
    E. 替换变量只能在 SELECT 语句中使用。
    F. 替换变量可以在 SELECT 语句的任何子句中使用。
    选项 A:
    用于提示列名的替换变量在某些情况下可以不用双引号。例如,如果列名是简单的、符合 SQL 命名规则且没有特殊字符或大小写问题,不使用双引号也可以正常工作。所以这个选项不完全正确。
    选项 B:
    以 "&" 开头的替换变量每次在语句中出现时都会提示输入值,而不是只提示一次,所以该选项错误。
    选项 C:
    如前面所说,一般不是用单引号来包围用于提示列名的替换变量,所以该选项错误。
    选项 D:
    以 "&&" 为前缀的替换变量通常在一个会话中只提示一次输入值,除非将其在会话中重新定义为未定义状态,所以该选项正确。
    选项 E:
    替换变量不只是用于 SELECT 语句,还可以用于 INSERT、UPDATE、DELETE 等其他 SQL 语句,所以该选项错误。
    选项 F:
    替换变量可以用于 SELECT 语句中的各种子句,包括 SELECT 子句、WHERE 子句、GROUP BY 子句、HAVING 子句等,所以该选项正确。
    正确答案是 DF。

38. 第38题:

  1. 题目
    38.Examine this description of the TRANSACTIONS table

    Which two SQL statements execute successfully?
    A.SELECT customer_id CUSTID, transaction date TRANS_DATE, amount+ 100 DUES FROM transactions
    B.SELECT customer_id AS "CUSTOMER-ID", transaction date AS DATE, amount + 100 "DUES" FROM transactions
    C.SELECT customer_id AS 'CUSTOMER-ID', transaction date AS DATE, amount + 100 'DUES' FROM transactions
    D.SELECT customer_id AS "CUSTOMER-ID ", transaction date AS "DATE", amount +100 DUES FROM transactions
    E.SELECT customer_id AS CUSTOMER-ID, transaction date AS TRANS DATE, amount 100 " DUES AMOUNT " FROM transactions
  2. 解析及答案:
    查看关于 "TRANSACTIONS" 表的如下描述。以下哪两个 SQL 语句能够成功执行?
    A. SELECT customer_id CUSTID, transaction_date TRANS_DATE, amount + 100 DUES FROM transactions
    在这条语句中,使用 "column_name alias_name" 的语法为 "customer_id" 创建了别名 "CUSTID",为 "transaction_date" 创建了别名 "TRANS_DATE",这种方式是正确的。并且 "amount + 100" 这个表达式是有效的,同时为它分配了别名 "DUES"。这条 SQL 语句在语法上是正确的,能够成功执行。所以,该选项正确。
    B. SELECT customer_id AS "CUSTOMER-ID", transaction_date AS DATE, amount + 100 "DUES" FROM transactions
    当使用带有空格或特殊字符的别名时,它们需要用双引号括起来。在这个选项中,为 "transaction_date" 创建的别名 "DATE" 以及为 "amount + 100" 创建的别名 "DUES" 没有正确地使用双引号括起来。它们应该用双引号括起来才能被识别为有效的别名。所以,该选项错误。
    C. SELECT customer_id AS 'CUSTOMER-ID', transaction_date AS DATE, amount + 100 'DUES' FROM transactions
    与选项 B 类似,当创建带有空格或特殊字符的别名时,应该使用双引号,而不是单引号。在这里,别名 "CUSTOMER-ID"、"DATE" 和 "DUES" 因为是用单引号括起来的,所以没有正确引用。所以,该选项错误。
    D. SELECT customer_id AS "CUSTOMER-ID", transaction_date AS "DATE", amount + 100 DUES FROM transactions
    别名 "CUSTOMER-ID"(注意破折号后面有个空格)和 "DATE" 都正确地用双引号括起来了。而且,为表达式 "amount + 100" 创建的别名 "DUES" 是有效的,因为它没有需要引用的空格或特殊字符。这条 SQL 语句在语法上是正确的,能够成功执行。所以,该选项正确。
    E. SELECT customer_id AS CUSTOMER-ID, transaction_date AS TRANS DATE, amount 100 "DUES AMOUNT" FROM transactions
    为 "customer_id" 创建的别名 "CUSTOMER-ID" 格式不正确。它要么应该按照 "column_name AS alias_name" 的格式并且在需要时进行正确引用,要么就使用 "column_name alias_name" 的格式。这里是一种不正确的组合方式。并且,为 "amount + 100" 创建的别名 "DUES AMOUNT" 因为有空格所以没有正确引用。所以,该选项错误。
    答案是 A 和 D。

39. 第39题:

  1. 题目
  2. 解析及答案:
    关于在未设置保证保留(GUARANTEED RETENTION)的情况下撤销保留(UNDO RETENTION)的配置和使用,以下哪两个陈述是正确的?
    A. 未过期的撤销数据(UNDO)总是会被保留。
    在未设置保证保留的情况下,未过期的撤销数据并非总是会被保留。如果系统需要空间来处理新的事务,就可能会覆盖未过期的撤销数据。所以,该选项错误。
    B. 撤销保留(UNDO RETENTION)指定了 Oracle 尝试保留未过期撤销数据的时长。
    在未设置保证保留的情况下,撤销保留(UNDO RETENTION)指定了 Oracle 尝试保留未过期撤销数据的时长。之所以说是尝试,是因为来自新事务的空间压力可能会导致未过期的撤销数据被覆盖。所以,该选项正确。
    C. 撤销保留(UNDO_RETENTION)指定了 Oracle 尝试保留已过期和未过期撤销数据的时长。
    撤销保留(UNDO_RETENTION)并不指定已过期撤销数据的保留时长。已过期的撤销数据会比未过期的撤销数据更快地被覆盖。撤销保留主要关注的是未过期的撤销数据。所以,该选项错误。
    D. 撤销保留(UNDO RETENTION)指定了所有类型撤销数据的保留时长。
    它并没有指定所有类型撤销数据的保留时长。如前文所述,它主要是关于尝试保留未过期的撤销数据,对于已过期的撤销数据并非以同样的方式进行规定。所以,该选项错误。
    E. 活动的撤销数据(ACTIVE UNDO)总是会被保留。
    活动的撤销数据总是会被保留。活动的撤销数据对于正在进行的事务的回滚是必需的。在一个事务被提交或回滚之前,其撤销信息被视为活动的,并且必须被保留以确保数据的一致性。所以,该选项正确。
    正确的两个陈述是 B 和 E。

40. 第40题:

  1. 题目
  2. 解析及答案:

"ORDERS" 表有一个名为 "ORDER_DATE" 的数据列,其数据类型为 "DATE"。日期的默认显示格式是 "DD - MON - RR"。

以下哪两个 "WHERE" 条件展示了转换函数的正确用法?

A. WHERE order_date = TO_DATE (ADD_MONTHS (SYSDATE, 6), 'MON DD YYYY')

在此处,"TO_DATE" 函数的使用不正确。"ADD_MONTHS (SYSDATE, 6)" 这部分返回的是一个日期值,而它被用作 "TO_DATE" 函数的第一个参数,然而 "TO_DATE" 函数期望的是一个表示日期的字符串作为其第一个参数。正确的用法应该是先使用 "TO_CHAR" 函数将 "ADD_MONTHS (SYSDATE, 6)" 的结果转换为字符串,然后如果需要的话再将其传递给 "TO_DATE" 函数。所以,该选项错误。

B. WHERE TO_CHAR (order date, 'MON - DD - YYYY') = 'JAN 20 2019'

在此处,"TO_CHAR" 函数中的列名 "order date" 拼写有误(正确的应该是 "order_date")。如果我们纠正这个拼写错误,那么这就是转换函数的一种正确用法。它将 "order_date" 列从日期数据类型转换为指定格式的字符串,然后与另一个表示日期的字符串进行比较。所以,如果纠正拼写错误的话,该选项正确。

C. WHERE order_date > TO_DATE ('JUL 10 2018', 'MON DD YYYY')

这个选项展示了 "TO_DATE" 函数的正确用法。它将字符串 "JUL 10 2018" 按照指定格式 "MON DD YYYY" 转换为日期值,然后与 "order_date" 列(其数据类型为日期)进行比较。所以,该选项正确。

D. WHERE order_date = TO_CHAR (ADD_MONTHS (SYSDATE, 6), 'MON DD YYYY)

在这里,在与 "order_date" 列进行比较时,"TO_CHAR" 函数的使用不正确。"order_date" 列是日期类型,在没有对两边进行恰当转换的情况下,不能直接将其与 "TO_CHAR" 函数返回的字符串结果进行比较。正确的做法应该是要么将 "order_date" 列转换为字符串并匹配格式,要么将字符串转换为日期然后再进行比较。所以,该选项错误。

E. WHERE order_date IN (TO_DATE ('oct 21 2018', 'MON - DD - YYYY '), TO_CHAR ('Nov 21 2018', 'MON DD YYYY'))

在这个选项中,"TO_DATE" 和 "TO_CHAR" 函数的使用不一致。"TO_DATE" 函数在第一部分("oct 21 2018")的使用是正确的,但第二部分使用 "TO_CHAR ('Nov 21 2018', 'MON DD YYYY')" 是错误的。"TO_CHAR" 函数是用于将日期转换为字符串,而不是反过来。并且日期值 "Nov 21 2018" 对于 "TO_CHAR" 函数来说已经是一个字符串了,其格式也不正确。所以,该选项错误。

答案是 B 和 C。

未完待续。
关注作者,您将获得更多OCP考试及Oracle DB方面的实战经验。后续不定期分享DB核心知识和排障案例及经验、性能调优等

相关推荐
爱吃烤鸡翅的酸菜鱼1 小时前
MySQL初学之旅(1)配置与基础操作
java·数据库·mysql·database
vvw&1 小时前
使用Ubuntu快速部署MinIO对象存储
linux·运维·服务器·ubuntu·minio·cos·oss
三日看尽长安花3 小时前
【分布式数据库】
数据库·分布式
网络安全指导员3 小时前
常见网络安全设备默认口令
服务器·网络·安全·web安全·php·apache
三项超标4 小时前
docker run集合
运维·docker·容器
fengxiaolu3114 小时前
docker pull 拉取镜像失败,使用Docker离线包
运维·docker·容器
归仁6 小时前
wvp 推拉转级联时频繁出现流无法观看的解决办法
linux·服务器·python·音视频
万叶学编程6 小时前
Linux之初体验
linux
一 乐7 小时前
家常菜点餐|基于java和小程序的家庭大厨家常菜点餐系统设计与实现(源码+数据库+文档)
java·数据库·小程序·家庭点餐小程序·家庭家常菜点餐