用于将旧表数据移动到新表的Oracle存储过程

时间:2018-04-19 07:25:05

标签: oracle plsql

我有一个Table列,其中的内容如下所示:

<div class="customclass recordwidget comments-section" style="margin-bottom:8px;  background-color:#f8f8f8; border-bottom:1px solid #f01928;border-top:1px solid #f01928; padding:8px; line-height:1.1;">
   <div class="headingcontent"><b style="font-size:15px;"> Mike</b> <b>4/12/2017</b> 17:7:49 </div>
   <div class="recordwidget-content">
      <p>test</p>
   </div>
</div>

根据设计,我们需要将上面的HTML丰富内容删除到简单的值,例如名称,年份和时间,在另一个表中有三个不同的列。

我想在oracle中编写一个存储过程或脚本,它获取每个记录的列值并获取name(Mike),year(4/12/2017)和time(17:7:49)的值和然后推送到具有一些条件的不同列的另一个表。

1 个答案:

答案 0 :(得分:0)

试试这个。

select * from xmltable('div/div[1]' passing xmltype('<div class="customclass recordwidget comments-section" style="margin-bottom:8px;  background-color:#f8f8f8; border-bottom:1px solid #f01928;border-top:1px solid #f01928; padding:8px; line-height:1.1;">
       <div class="headingcontent"><b style="font-size:15px;"> Mike</b> <b>4/12/2017</b> 17:7:49 </div>
       <div class="recordwidget-content">
          <p>test</p>
       </div>
    </div>') 
    columns 
     name_ varchar2(1000) path 'b[1]/text()'
    ,date_ varchar2(1000) path 'b[2]/text()'
    ,time_  varchar2(1000) path 'text()')