[英]Extracting xml values from column and inserting them into another database
I have a database with a Blob
column that contains XML files. 我有一个数据库,其中的
Blob
列包含XML文件。 I would like to retrieve the values of XML tags stored in Blob in this database to detail them in their respective columns in another database. 我想在此数据库中检索存储在Blob中的XML标签的值,以在另一个数据库的它们各自的列中详细说明它们。
So, how can I get the value of the x
tag ( as shown in the SQL queries below ) and insert it into the x
column of my other database? 因此,如何获取
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';
hello everyone I found the solution to my problem if it can help someone : 大家好,我发现我的问题的解决方案是否可以帮助某人:
> ** 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.