【发布时间】:2021-06-03 22:24:48
【问题描述】:
我有一个 Oracle DB,其中包含一个名为 CONTENT 的 XML 列:
<?xml version="1.0"?>
<PAGE>
<INFO>
<ID>324374</ID>
<PAGE>ANE_CSC</PAGE>
</INFO>
<CAMPS>
<CAMP KEY_CAMP="ACCESS_CONTROL">456675</CAMP>
<CAMP KEY_CAMP="IDEN_ANAG">1458</CAMP>...
</CAMPS>
</PAGE>
我正在尝试在 Excel 单元格中提取 IDEN_ANAG 值(因此:1458),但是我不知道如何在 VBA 中正确地阐述 XML 数据。
我尝试了一些方法(如getStringVal(), getClob(), EXTRACT() 之类的命令),但无法找到可行的解决方案。
这是我目前正在尝试做的:
Cmd.CommandText = "select XMLTYPE('<CAMP>'||CONTENT||'</CAMP>').getStringVal() from table WHERE ID = 324374
Set rs = Cmd.Execute()
Do While Not rs.EOF
WSP1.Cells(CellWrite, 1).Value = rs.Fields(0).Value
CellWrite = CellWrite + 1
rs.MoveNext
Loop
我知道上面的代码实际上并没有提取特定的 ID,但我非常绝望,至少要从提取整个 XML 开始,然后尝试为其中的特定部分找到解决方案。
虽然我几乎可以肯定我只是在代码中犯了一个错误,但我已经根据互联网搜索、使用不同的功能等尝试了几种不同的结果,但我总是遇到像 Runtime error 或上面的代码给了我Runtime error: Character string buffer too small的错误。
如有任何关于如何提取特定数据的建议,我们将不胜感激。
【问题讨论】: