在 Oracle 中提取 XML 数据时总是空白
Always getting blank when extracting XML data in Oracle
我在 Oracle NCLOB 上有一个 XML 数据:
<Storage xmlns="http://tempuri.org/Storage.xsd">
<TableInfo>
<Name>Table Name</Name>
<Description>Table Description</Description>
...
</TableInfo>
<ColumnInfo>
<Name>Column Name 1</Name>
<Caption>Column Caption 1</Caption>
...
</ColumnInfo>
<ColumnInfo>
<Name>Column Name 2</Name>
<Caption>Column Caption 2</Caption>
...
</ColumnInfo>
...
在 Oracle 中,这是我提取数据的尝试:
...
CROSS JOIN XMLTABLE('/Storage/ColumnInfo'
PASSING XMLTYPE(cv.dictionary_data) -- NCLOB column holding the XML
COLUMNS
tag VARCHAR2(500) PATH 'Name',
caption VARCHAR2(500) PATH 'Caption'
) x
...
我一直在尝试使用绝对和相对 XPath 来替换 /Storage/ColumnInfo
,但我总是出现空白。
我的目标是:
ID
Tag
Caption
1
Column Name 1
Column Caption 1
1
Column Name 2
Column Caption 2
2
Another Name 1
Another Caption 1
2
Another Name 2
Another Caption 2
2
Another Name 3
Another Caption 3
您必须指定命名空间:
CROSS JOIN XMLTABLE(XMLNAMESPACES(DEFAULT 'http://tempuri.org/Storage.xsd'), '/Storage/ColumnInfo'
我在 Oracle NCLOB 上有一个 XML 数据:
<Storage xmlns="http://tempuri.org/Storage.xsd">
<TableInfo>
<Name>Table Name</Name>
<Description>Table Description</Description>
...
</TableInfo>
<ColumnInfo>
<Name>Column Name 1</Name>
<Caption>Column Caption 1</Caption>
...
</ColumnInfo>
<ColumnInfo>
<Name>Column Name 2</Name>
<Caption>Column Caption 2</Caption>
...
</ColumnInfo>
...
在 Oracle 中,这是我提取数据的尝试:
...
CROSS JOIN XMLTABLE('/Storage/ColumnInfo'
PASSING XMLTYPE(cv.dictionary_data) -- NCLOB column holding the XML
COLUMNS
tag VARCHAR2(500) PATH 'Name',
caption VARCHAR2(500) PATH 'Caption'
) x
...
我一直在尝试使用绝对和相对 XPath 来替换 /Storage/ColumnInfo
,但我总是出现空白。
我的目标是:
ID | Tag | Caption |
---|---|---|
1 | Column Name 1 | Column Caption 1 |
1 | Column Name 2 | Column Caption 2 |
2 | Another Name 1 | Another Caption 1 |
2 | Another Name 2 | Another Caption 2 |
2 | Another Name 3 | Another Caption 3 |
您必须指定命名空间:
CROSS JOIN XMLTABLE(XMLNAMESPACES(DEFAULT 'http://tempuri.org/Storage.xsd'), '/Storage/ColumnInfo'