Upload
nguyendang
View
213
Download
0
Embed Size (px)
Citation preview
Datu izgūšana no XML struktūrām
select extractValue(OBJECT_VALUE, '/gramatveikals/gramata[1]/autors') GRĀMATASfrom GRAMATVEIKALI;
GRĀMATAS--------------------Juris Kālis
select extractValue(OBJECT_VALUE, '/gramatveikals/gramata[2]/autors') GRĀMATASfrom GRAMATVEIKALI;
GRĀMATAS---------------------Anita Zemniece
select extractValue(OBJECT_VALUE, '/gramatveikals/gramata [@kategorija="Pavārgrāmatas"]/autors') GRĀMATASfrom GRAMATVEIKALI;
GRĀMATAS-----------------Juris Kālis
select extractValue(OBJECT_VALUE, '/gramatveikals/gramata[cena = 10.00]/autors') GRĀMATASfrom GRAMATVEIKALI_TAB;
GRĀMATAS---------------Anita Zemniece
XML dati
Datu izguve
Relāciju dati
1
XML datu izgūšana no relāciju datu bāzes struktūrām
create table GRAMATVEIKALI_R(GRAMATVEIKALS varchar2(20),GRAMATA varchar2(20),AUTORS varchar2(20),CENA varchar2(20));
insert into GRAMATVEIKALI_R values('Zvaigzne', 'DBS', 'Koks', 15.00);insert into GRAMATVEIKALI_R values('Zvaigzne', 'WEB', 'Zars', 35.00);insert into GRAMATVEIKALI_R values('Valters un Rapa', 'Datu bāzes', 'Celms', 25.00);insert into GRAMATVEIKALI_R values('Valters un Rapa', 'Oracle XML DB', 'Osis', 20.00);
Relāciju dati
Datu izguve
XML dati
2
Generating XML from SQL Data with SQL XML Functions
Function Name DescriptionxmlElement() Returns an XML element in an XMLType when given the
XML element name, an optional list of XML attributes (XMLATTRIBUTES()), and an optional list of values as the content of the new element. XMLELEMENT() can also contain other XML elements or XML fragments (XMLFOREST() ) as its children.
xmlAttributes() Used within XMLELEMENT() to specify attributes for the element.
xmlForest() Returns an XML fragment in an XMLType when given a list of named expressions for the XML elements. Each expression specifies the name of an XML element and its content.
XMLCONCAT() Returns an XML fragment in an XMLType by concatenating a list of XML elements/values.
XMLAGG() Returns an XML fragment in an XMLType by aggregating XML fragments, with the option of XML element sorting.
SYS_xmlGen() Generates an XML document with the <?XML?> prolog from one scalar type, a user-defined object type, or an instance of XMLType.
XMLSEQUENCE() Returns a collection of XMLTypes in an XMLSEQUENCEType, which is a VARRAY of XMLType instances in the database.
SYS_XMLAGG() Aggregates XML elements from one scalar type, a user-defined object type, or an instance of XMLType.
XMLCOLATTVAL() Generates a set of <column/> elements with the name attributes specifying the column names or the name aliases.
UPDATEXML() Updates XML documents in XMLTypes using XPath expressions.
XMLTRANSFORM() Applies XSL transformation on XML documents in XMLTypes.
EXTRACTVALUE() Returns scalar content, such as numbers or strings, when passed an XPath expression pointing to an XML element with only a single text child.
XML datu izgūšana no relāciju datu bāzes struktūrām
3
(turpinājums)
select xmlElement("gramatveikals",xmlAttributes(a.GRAMATVEIKALS as "nosaukums"),xmlForest(a.GRAMATA as "gramata")).extract('/*') as XMLfrom GRAMATVEIKALI_R a;
XML--------------------------------------------<gramatveikals nosaukums="Zvaigzne"> <gramata>DBS</gramata></gramatveikals>
<gramatveikals nosaukums="Zvaigzne"> <gramata>WEB</gramata></gramatveikals>
<gramatveikals nosaukums="Valters un Rapa"> <gramata>Datu bāzes</gramata></gramatveikals>
<gramatveikals nosaukums="Valters un Rapa"> <gramata>Oracle XML DB</gramata></gramatveikals>
4
XML datu izgūšana no relāciju datu bāzes struktūrām(turpinājums)
select xmlElement("gramatveikals",xmlAttributes(a.GRAMATVEIKALS as "nosaukums"),sys_xmlgen(a.GRAMATA) as "darbs",sys_xmlgen(a.AUTORS) as "rakstnieki").extract('/*') as XMLfrom GRAMATVEIKALI_R a;
XML-------------------------------------------<gramatveikals nosaukums="Zvaigzne"> <darbs> <GRAMATA>DBS</GRAMATA> </darbs> <rakstnieki> <AUTORS>Koks</AUTORS> </rakstnieki></gramatveikals>
<gramatveikals nosaukums="Zvaigzne"> <darbs> <GRAMATA>WEB</GRAMATA> </darbs> <rakstnieki> <AUTORS>Zars</AUTORS> </rakstnieki></gramatveikals>
<gramatveikals nosaukums="Valters un Rapa"> <darbs> <GRAMATA>Datu bāzes</GRAMATA> </darbs> <rakstnieki> <AUTORS>Celms</AUTORS> </rakstnieki></gramatveikals>
5
XML datu izgūšana no relāciju datu bāzes struktūrām(turpinājums)
select xmlElement("gramatveikals",xmlAttributes(a.GRAMATVEIKALS as "nosaukums"),xmlForest(a.GRAMATA as "gramata"),xmlForest(a.AUTORS as "autors")).extract('/*') as XMLfrom GRAMATVEIKALI_R a;
XML-------------------------------------------<gramatveikals nosaukums="Zvaigzne"> <gramata>DBS</gramata> <autors>Koks</autors></gramatveikals>
<gramatveikals nosaukums="Zvaigzne"> <gramata>WEB</gramata> <autors>Zars</autors></gramatveikals>
<gramatveikals nosaukums="Valters un Rapa"> <gramata>Datu bāzes</gramata> <autors>Celms</autors></gramatveikals>
<gramatveikals nosaukums="Valters un Rapa"> <gramata>Oracle XML DB</gramata> <autors>Osis</autors></gramatveikals>
6
XML datu izgūšana no relāciju datu bāzes struktūrām(turpinājums)
select xmlElement("gramatveikals",xmlAttributes(a.GRAMATVEIKALS as "nosaukums"),xmlForest(a.GRAMATA as "gramata"),sys_xmlgen(a.AUTORS) as "rakstnieki").extract('/*') as XMLfrom GRAMATVEIKALI_R a;
XML--------------------------------------------<gramatveikals nosaukums="Zvaigzne"> <gramata>DBS</gramata> <rakstnieki> <AUTORS>Koks</AUTORS> </rakstnieki></gramatveikals>
<gramatveikals nosaukums="Zvaigzne"> <gramata>WEB</gramata> <rakstnieki> <AUTORS>Zars</AUTORS> </rakstnieki></gramatveikals>
<gramatveikals nosaukums="Valters un Rapa"> <gramata>Datu bāzes</gramata> <rakstnieki> <AUTORS>Celms</AUTORS> </rakstnieki></gramatveikals>
<gramatveikals nosaukums="Valters un Rapa"> <gramata>Oracle XML DB</gramata> <rakstnieki> <AUTORS>Osis</AUTORS> </rakstnieki></gramatveikals>
7