sql提取给定xmlstring(oracle)的值列表

时间:2014-01-28 20:58:11

标签: sql oracle11g

如果我有像这样的xml字符串

<xml>
    <myid>1</myid>
    <myid>2</myid>
    <myid>3</myid>
</xml>

我如何使用sql来获取myid的列表?

我以为我可以这样试试。内部选择返回xml,但我如何得到值?

   select ....   from (select xmltype('<xml><myid>1</myid><myid>2</myid><myid>3</myid></xml>') as xmlidlist from dual)

2 个答案:

答案 0 :(得分:0)

我假设您在SQL数据库的XML类型列中拥有该XML代码。也许是这样的?

select collumnName.query('/myid') from tableName

答案 1 :(得分:0)

你可以这样做从字符串中提取值,但看起来有点像矫枉过正。

select x.myid
from xmltable('/xml/*'
  passing xmltype('
<xml>
    <myid>1</myid>
    <myid>2</myid>
    <myid>3</myid>
</xml>')
  columns myid path '/myid') x;

SQL Fiddle