簡體   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