|
2011-11-19 答案ABD
A:XPath语句作为实际参数被传给EXTRACT方法,用来从"PERSON"节点获取"name"属性。
XMLSEQUENCE函数和TABLE函数联用,把"name"属性转换成VARCHAR2值并分行展示。
B: 使用XMLTABLE函数取代了XMLSEQUENCE函数和TABLE函数,为ORACLE开发者提供了“关系”的方法来查询XML数据。
多数情况下针对XML数据的不需要复杂的查询条件,这是一种简单的好方法。
C:XMLQUERY函数使用XQuery语言来查询XML数据并以XMLTYPE类型返回结果。在此答案中,XQuery结果被转换为包含有合并的人名的VARCHAR2,而不是分开的两行。
D:XMLSEQUENCE函数同样能接受FLOWR (For, Let, Order By, Where, 和 Return)格式的Xquery字符串参数。
FLOWR在这里有点大材小用,但是在某些复杂的情况下它是获得XML数据的唯一方法。
=================================================
2011-11-26 索引的使用
作者:Steven Feuerstein
难度:低
plch_employees表被如下的语句创建:
CREATE TABLE plch_employees
(
employee_id INTEGER
, last_name VARCHAR2 (100)
, first_name VARCHAR2 (100)
, hire_date DATE
, salary NUMBER
)
它有一千万行数据。雇佣日期平均分布在1980到2010年之间。
这张表目前没有索引,用户对性能不满意。下面的这个索引会让哪些查询改善性能?
CREATE INDEX i_plch_employees
ON plch_employees (hire_date)
(A)
SELECT last_name
FROM plch_employees
WHERE hire_date BETWEEN TO_DATE ('01-01-2010', 'MM-DD-YYYY')
AND TO_DATE ('12-31-2010', 'MM-DD-YYYY')
(B)
SELECT last_name
FROM plch_employees
WHERE TO_CHAR (hire_date, 'YYYY') = '2010'
(C)
SELECT last_name
FROM plch_employees
WHERE hire_date < SYSDATE
(D)
SELECT last_name
FROM plch_employees
WHERE hire_date + 365 BETWEEN TO_DATE ('01-01-2011', 'MM-DD-YYYY')
AND TO_DATE ('12-31-2011', 'MM-DD-YYYY')
|
|