drop table NACHRICHTEN_X;
CREATE TABLE NACHRICHTEN_X (
"NR_X" NUMBER(10),
"NR_NACHRICH_X" CLOB
);
insert into NACHRICHTEN_X
VALUES (10,'KarinHamburg');
commit;
set long5000;
SELECT * FROM NACHRICHTEN_X;
--- -----------------------------------------------------------------------
drop table NACHRICHTEN_U;
CREATE TABLE NACHRICHTEN_U (
"NR_I" NUMBER(10),
"NR_NACHRICH" XMLTYPE
);
insert into NACHRICHTEN_U
VALUES(10, xmltype('PeterBremen'));
insert into NACHRICHTEN_U
VALUES(20, xmltype('TheoHamburg'));
insert into NACHRICHTEN_U
VALUES(30, xmltype('PeterHamburg'));
insert into NACHRICHTEN_U
VALUES(50, xmltype('PetraBremen'));
insert into NACHRICHTEN_U
VALUES(60, xmltype('TheoBremen'));
insert into NACHRICHTEN_U
VALUES(70, xmltype('KarinHannover'));
commit;
set long 5000;
select * from NACHRICHTEN_U;
select n.NR_NACHRICH.getClobVal() as Adresse
from NACHRICHTEN_U n;
select n.NR_NACHRICH.getClobVal() as Adresse
from NACHRICHTEN_U n
where NR_I=30;
select NR_I as Nummer, n.NR_NACHRICH.getClobVal() as Adresse
from NACHRICHTEN_U n
where NR_I=30;
--- -----------------------------------------------------------------------
update NACHRICHTEN_U
set NR_NACHRICH=XMLTYPE (
'GertFrankfurt')
where NR_I=30;
select * from NACHRICHTEN_U where NR_I=30;
--- -----------------------------------------------------------------------
select n.NR_NACHRICH.getClobVal() as Adresse
from NACHRICHTEN_U n
where NR_I=20;
update NACHRICHTEN_U
set NR_NACHRICH=UPDATEXML(NR_NACHRICH,'/Adresse/Name/text()','Hugo')
where NR_I=20;
commit;
select n.NR_NACHRICH.getClobVal() as Adresse
from NACHRICHTEN_U n
where NR_I=20;
--- -----------------------------------------------------------------------
ALTER TABLE NACHRICHTEN_U add (SONSTIGES XMLType);
insert into NACHRICHTEN_U
values(10, XMLTYPE('KarinHamburg'),
XMLTYPE('Lesen,Theater,Tennis'));
select * from NACHRICHTEN_U;
select * from NACHRICHTEN_U where NR_I=10;
ALTER TABLE NACHRICHTEN_U drop(SONSTIGES);
select * from NACHRICHTEN_U;
drop table NACHRICHTEN_U;
--- -----------------------------------------------------------------------
select n.NR_I,
extractValue(n.NR_NACHRICH,'/Adresse/Name')
from NACHRICHTEN_U n;
select n.NR_I, extractValue(n.NR_NACHRICH,'/Adresse/Name') as Name
from NACHRICHTEN_U n
where existsNode(n.NR_NACHRICH,'/Adresse[Ort="Bremen"]')=1;
--- -----------------------------------------------------------------------
create or replace view v_NR_NACHRICH
as select n.NR_I, extractValue(n.NR_NACHRICH,'/Adresse/Name') as name
from NACHRICHTEN_U n;
select * from v_NR_NACHRICH;
--- -----------------------------------------------------------------------
drop table Nachrich_rel_tab;
CREATE TABLE Nachrich_rel_tab (
Name varchar2(20),
Ort varchar2(20)
);
INSERT INTO Nachrich_rel_tab
SELECT n.NR_NACHRICH.extract('/Adresse/Name/text()').getstringval() as Name,
n.NR_NACHRICH.extract('/Adresse/Ort/text()').getstringval() as Ort
FROM NACHRICHTEN_U n;
commit;
select * from Nachrich_rel_tab;
drop table NACHRICHTEN_U;
--- -----------------------------------------------------------------------
select * from Nachrich_rel_tab;
select XMLELEMENT(Personen, NT.Name||' '||NT.Ort) as RESULT
from Nachrich_rel_tab NT;
select XMLELEMENT(Personen, XMLAGG(XMLELEMENT(PAngabe, NT.Name||' '||NT.Ort))) as RESULT
from Nachrich_rel_tab NT;
select XMLELEMENT(Personen, XMLATTRIBUTES(Ort as "Wohnort"), XMLELEMENT(PAngabe, NT.Name)) as RESULT
from Nachrich_rel_tab NT;