0

我正在尝试使用 Oracle SQL Developer 中的以下查询从以 xml 格式存储数据的列中检索 xml 值。但收到此错误:

ORA-00932:不一致的数据类型:预期 - 得到 - 00932. 00000 - “不一致的数据类型:预期 %s 得到 %s” *原因:

列的数据类型是 CLOB

 SELECT id, 
   extractValue(e.event_data, '/DocumentRequest/RequestUserName')
   "Number of Docks"
   FROM table e

例如:

<DocumentRequest>
    <RequestUserName>XXXX</RequestUserName>
    <RequestDateTime>XXXX</RequestDateTime>
    <DocSequence>1</DocSequence>
4

1 回答 1

1

如果 XML 存储为 CLOB,则取 XMLTYPE:

SELECT id,
       EXTRACTVALUE( XMLTYPE(e.event_data), '/DocumentRequest/RequestUserName') AS "Number of Docks"
  FROM table e;

使用 XMLTABLE 的查询:

SELECT id,
       col1 AS "Number of Docks"
  FROM table e, XMLTABLE( '/DocumentRequest'
                  PASSING XMLTYPE(e.event_data)
                  COLUMNS col1 PATH 'RequestUserName' );
于 2021-01-27T15:17:55.597 回答