繁体   English   中英

从列中提取xml值并将其插入到另一个数据库中

[英]Extracting xml values from column and inserting them into another database

我有一个数据库,其中的Blob列包含XML文件。 我想在此数据库中检索存储在Blob中的XML标签的值,以在另一个数据库的它们各自的列中详细说明它们。

因此,如何获取x标记的值( 如下面的SQL查询所示 )并将其插入到其他数据库的x列中?

在此处输入图片说明

SELECT id,

EXTRACTVALUE(Value(p), 'activites/categorieProjet/text()') As categorieProjet,
EXTRACTVALUE(Value(p), 'activites/coutParBeneficiaire/text()') As coutParBeneficiaire,
EXTRACTVALUE(Value(p), 'activites/etat/text()') As etat,
EXTRACTVALUE(Value(p), 'activites/idActivite/text()') As IdActivite,
EXTRACTVALUE(Value(p), 'activites/nbreDeBeneficiaires/text()') As nbreDeBeneficiaires,
EXTRACTVALUE(Value(p), 'activites/nbsession/text()') As nbsession,
EXTRACTVALUE(Value(p), 'activites/nom/text()') As nom,
EXTRACTVALUE(Value(p), 'activites/objectifSpecifique/text()') As objectifSpecifique,
EXTRACTVALUE(Value(p), 'activites/participation/text()') As participation,
EXTRACTVALUE(Value(p), 'activites/publicConcerne/text()') As publicConcerne,
EXTRACTVALUE(Value(p), 'activites/thematique/text()') As thematique,
EXTRACTVALUE(Value(p), 'activites/typeActivite/text()') As typeActivite,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[1]') As zoneGeographiques,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[2]') As zoneGeographiques,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[3]') As zoneGeographiques,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[4]') As zoneGeographiques,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[5]') As zoneGeographiques,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[6]') As zoneGeographiques,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[7]') As zoneGeographiques
FROM
artpiece x,
TABLE(XMLSEQUENCE(
EXTRACT(XMLTYPE(blob2clob(x.blob_piece)),'/instructionAC/activites')
))p
   where rf_pieg  = 'PIEG0034';

大家好,我发现我的问题的解决方案是否可以帮助某人:

> ** creation of new table
------------------------
create table TestSipac(
  categorieProjet          varchar2(100),
  coutParBeneficiaire      varchar2(100),
  etat                     varchar2(100),
  IdActivite               varchar2(100),
  nbreDeBeneficiaires      varchar2(100),
  nbsession                 varchar2(100),
  objectifSpecifique        varchar2(100),
  participation             varchar2(100),
  publicConcerne           varchar2(100),
  thematique               varchar2(100),
  typeActivite             varchar2(100),
  zoneGeographiques1        varchar2(100),
  zoneGeographiques2             varchar2(100),
  zoneGeographiques3           varchar2(100),
  zoneGeographiques4               varchar2(100),
  zoneGeographiques5             varchar2(100)
 )

***

DECLARE

  categorieProjet          varchar2(100);
  coutParBeneficiaire      varchar2(100);
  etat                     varchar2(100);
  IdActivite               varchar2(100);
  nbreDeBeneficiaires      varchar2(100);
  nbsession                 varchar2(100);
  objectifSpecifique        varchar2(300);
  participation             varchar2(100);
  publicConcerne           varchar2(100);
  thematique               varchar2(100);
  typeActivite             varchar2(100);
  zoneGeographiques1        varchar2(100);
  zoneGeographiques2             varchar2(100);
  zoneGeographiques3           varchar2(100);
  zoneGeographiques4               varchar2(100);
  zoneGeographiques5             varchar2(100);


BEGIN
for i in (select 
EXTRACTVALUE(Value(p), 'activites/categorieProjet/text()') As categorieProjet,
EXTRACTVALUE(Value(p), 'activites/coutParBeneficiaire/text()') As coutParBeneficiaire,
EXTRACTVALUE(Value(p), 'activites/etat/text()') As etat,
EXTRACTVALUE(Value(p), 'activites/idActivite/text()') As IdActivite,
EXTRACTVALUE(Value(p), 'activites/nbreDeBeneficiaires/text()') As nbreDeBeneficiaires,
EXTRACTVALUE(Value(p), 'activites/nbsession/text()') As nbsession,
EXTRACTVALUE(Value(p), 'activites/nom/text()') As nom,
EXTRACTVALUE(Value(p), 'activites/objectifSpecifique/text()') As objectifSpecifique,
EXTRACTVALUE(Value(p), 'activites/participation/text()') As participation,
EXTRACTVALUE(Value(p), 'activites/publicConcerne/text()') As publicConcerne,
EXTRACTVALUE(Value(p), 'activites/thematique/text()') As thematique,
EXTRACTVALUE(Value(p), 'activites/typeActivite/text()') As typeActivite,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[1]') As zoneGeographiques1,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[2]') As zoneGeographiques2,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[3]') As zoneGeographiques3,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[4]') As zoneGeographiques4,
EXTRACTVALUE(Value(p), 'activites/zoneGeographiques[5]') As zoneGeographiques5
FROM
artpiece x,
TABLE(XMLSEQUENCE(
EXTRACT(XMLTYPE(blob2clob(x.blob_piece)),'/instructionAC/activites')
))p
   where rf_pieg  = 'PIEG0034') loop
        insert into TestSipac(
        categorieProjet,
  coutParBeneficiaire,
  etat,
  IdActivite,
  nbreDeBeneficiaires,
  nbsession,
  objectifSpecifique,
  participation,
  publicConcerne,
  thematique,
  typeActivite,
  zoneGeographiques1,
  zoneGeographiques2,
  zoneGeographiques3,
  zoneGeographiques4,
  zoneGeographiques5)
       values ( i.categorieProjet,
  i.coutParBeneficiaire,
  i.etat,
  i.IdActivite,
  i.nbreDeBeneficiaires,
  i.nbsession,
  i.objectifSpecifique,
  i.participation,
  i.publicConcerne,
  i.thematique,
  i.typeActivite,
  i.zoneGeographiques1,
  i.zoneGeographiques2,
  i.zoneGeographiques3,
  i.zoneGeographiques4,
  i.zoneGeographiques5);
     end loop;
   end;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM