【发布时间】:2021-08-30 03:47:11
【问题描述】:
我有一张带有 Clob 字段的表格
Create table xml_data
(id number,employee_data clob);
Employee_data table xml :
<employees>
<employee id=1>
<properties Name="firstname">Sherlock</properties>
<properties Name="lastname">Holmes</properties>
<properties Name="age">30</properties>
<properties Name="department" >investigation </properties>
</employee>
<employee id=2>
<properties Name="firstname">John</properties>
<properties Name="lastname">Watson</properties>
<properties Name="age">30</properties>
<properties Name="department">writing </properties>
</employee>
</employees>
Create table employees
(firstname varchar2(10),
lastname varchar2(10),
age number) ;
这是我的代码:
declare
v_xml xmltype;
begin
select xmltype(x.employee_data) into v_xml from xml_data x where id=1;
insert into employees (firstname,lastname,age)
select firstname,lastname,age from xmltable('/employees/employee[@id=1]')
passing v_xml
columns firstname varchar2(30) path '/properties[@firstname]',
lastname varchar2(30) path '/properties[@lastname]',
age number path '/properties[@age]');
end;
/
以下输出除外:
员工表:
| firstname | lastname | age |
|---|---|---|
| sherlock | holmes | 30 |
但没有值被插入到员工表中。
谁能提出一个更好的方法来解决这个问题
【问题讨论】:
标签: sql xml oracle plsql xmltable