如何使用现有表中的数据过滤XMLTABLE?

时间:2011-05-04 08:16:12

标签: xml oracle

我有一个表d(col1,name,col3 ... coln)和xmlfile,我只需要从XML中选择那些在DB中不存在的名称:

Select t.nam
From XMLTABLE('/Документ/План/СтрокиПлана/Строка' 
PASSING xml COLUMNS nam Varchar2(256) PATH '@Дис') t
    ,disciplines_ d
Where d.Name != t.nam;

但结果输出显示的内容类似于

Select *
From table_1
    ,table_2

1 个答案:

答案 0 :(得分:1)

你可以尝试以下方法:

Select t.nam
  From XMLTABLE('/Документ/План/СтрокиПлана/Строка' 
       PASSING xml COLUMNS nam Varchar2(256) PATH '@Дис') t
 where t.nam NOT IN (SELECT d.name 
                       FROM disciplines_ d 
                      WHERE d.name IS NOT NULL)