Sql oracle表中的Xml大容量插入

Sql oracle表中的Xml大容量插入,sql,database,oracle11g,oracle10g,procedures,Sql,Database,Oracle11g,Oracle10g,Procedures,我是甲骨文的新手, 我想说的是, 我有一个xml,我尝试在oracle数据库表中插入它,我已经形成了一个查询,当我尝试插入它时。我有一些错误,比如 错误报告- ORA-06550:第35行第84列: PL/SQL:ORA-00933:SQL命令未正确结束 ORA-06550:第5行第2列: PL/SQL:SQL语句被忽略 655000000-“行%s,列%s:\n%s” *原因:通常是PL/SQL编译错误。 *行动: 我无法找出我遗漏了什么,建议我如何更改查询 这是我的XML和查询,我正在努力工

我是甲骨文的新手, 我想说的是, 我有一个xml,我尝试在oracle数据库表中插入它,我已经形成了一个查询,当我尝试插入它时。我有一些错误,比如

错误报告- ORA-06550:第35行第84列: PL/SQL:ORA-00933:SQL命令未正确结束 ORA-06550:第5行第2列: PL/SQL:SQL语句被忽略 655000000-“行%s,列%s:\n%s” *原因:通常是PL/SQL编译错误。 *行动:

我无法找出我遗漏了什么,建议我如何更改查询

这是我的XML和查询,我正在努力工作

-
- 
100
通知
订单号
- 
- 
1.
1.
单位类型
- 
1.
2.
单位类型
- 
2.
1.
单位类型
- 
2.
2.
单位类型

您需要使用xmlsequence函数。它将允许您从XML对象中选择节点列表。如果您想使用pl/sql,则使用变量替换xmltype

      SELECT 
  extractValue(column_value,'callSummary/indId[1]'),
  extractValue(column_value,'callSummary/notificationNo[1]'),
  extractValue(column_value,'callSummary/orderNo[1]'),
  extractValue(column_value,'callSummary/callList/callDetails/maintenancetype[1]'),
  extractValue(column_value,'callSummary/callList/callDetails/serialNo[1]'),
  extractValue(column_value,'callSummary/callList/callDetails/unitType[1]') from table (
       xmlsequence(
         extract(
           xmltype('<call><callSummary><indId>100</indId><notificationNo>notification</notificationNo><orderNo>orderno</orderNo></callSummary><callList><callDetails><maintenancetype>1</maintenancetype><serialNo>1</serialNo><unitType>unit type</unitType></callDetails><callDetails><maintenancetype>1</maintenancetype><serialNo>2</serialNo><unitType>unit type</unitType></callDetails><callDetails><maintenancetype>2</maintenancetype><serialNo>1</serialNo><unitType>unit type</unitType></callDetails><callDetails><maintenancetype>2</maintenancetype><serialNo>2</serialNo><unitType>unit type</unitType></callDetails></callList></call>'),'/call/callSummary')));
选择
extractValue(列值,'callSummary/indId[1]'),
extractValue(列_值,'callSummary/notificationNo[1]'),
extractValue(列_值,'callSummary/orderNo[1]'),
extractValue(列_值,'callSummary/callList/callDetails/maintenancetype[1]'),
extractValue(列值,'callSummary/callList/callDetails/serialNo[1]'),
从表中提取值(列_值,'callSummary/callList/callDetails/unitType[1]')(
xmlsequence(
提取(
xmltype('100NotificationOrderNo11UnitType12UnitType21UnitType22UnitType'),'/call/callSummary');

Insert语句应将
包含在
中。尝试调整,看看错误是否解决。@Parfait是的,我加入并尝试了..它再次显示相同的错误Hey Nick…它工作了…非常感谢..你救了我一天…:-)没问题。很乐意帮忙。