我有一块PL / SQL可以:
SELECT *
BULK COLLECT INTO table_1
FROM XMLTABLE (
'//Match'
PASSING l_xml_string
COLUMNS col_1 VARCHAR2 (8) PATH '@col_1' ,
col_2 VARCHAR2 (40) PATH '@col_2');
然后我使用XMLAGG将它们存储为XML变量。
我想加入一个视图的col_1值,但问题是当我使用EXTRACTVALUE函数时(来自聚合的xml)我得到一个可怕的解释计划(全表扫描使用索引)当我通过它时单个值 - 即使xml中有一条记录。
当我在输入此表之前进行提取(将其存储在变量中然后加入变量)时,它会采用正确的路径,但为此我将自己限制为1个结果(其中rownum< 2)当我需要删除此限制。
当我这样做时:
select col_1
into l_col_1 from
TABLE (table_1);
显示:
ORA-01422: exact fetch returns more than requested number of rows
还有其他方法可以做到这一点或:
SELECT EXTRACTVALUE (data.COLUMN_VALUE ....