SQL to follow along with the presentation at:
http://www.scribd.com/doc/2402063/SQLXML-For-Postgres-Developers
Slide 25
CREATE TABLE EMP
(
LAST_NAME text,
EMP_ID integer NOT NULL,
FIRST_NAME text,
DEPT_ID integer,
SALARY integer,
CONSTRAINT EMP_pkey PRIMARY KEY (EMP_ID)
)
WITH (OIDS=FALSE);
ALTER TABLE EMP OWNER TO xmluser;
Slide 26
INSERT INTO
EMP(
LAST_NAME, EMP_ID, FIRST_NAME, DEPT_ID, SALARY)
VALUES
('Blow', 1, 'Joe', 1, 10000),
('Head', 2, 'Helmut', 1, 12000),
('Jack', 3, 'Noe', 1, 12000),
('Hard', 4, 'Blow', 2, 20000),
('First', 5, 'Hugo', 2, 21000),
('Spaem',6, 'Kingoof', 2, 20000),
('Ventura', 7, 'Ace', 3, 35000),
('Nickleby', 8, 'Nick', 3, 400000),
('Budd', 9, 'Billy', 4, 99000),
('Cleaver', 10, 'Wally', 4, 100000) ;
Slide 29
SELECT xmlelement(name main, last_name) from emp;
Slide 30
SELECT xmlelement(name main, last_name),
xmlelement(name main, first_name)
FROM emp;
Slide 31
SELECT XMLForest(last_name, first_name)
FROM emp;
Slide 32
SELECT xmlelement(name main,
xmlforest(last_name, first_name) )
FROM emp;
Slide 33
SELECT XMLAgg(
XMLForest(last_name, first_name) )
FROM emp;
Slide 34
SELECT XMLElement(name main,
XMLAgg(XMLForest(last_name, first_name) ))
FROM emp;
Slide 35
SELECT XMLElement(name main, XMLAttributes(nextval('t_seq') AS rownum) )
FROM emp;
Slide 36
CREATE TEMP SEQUENCE t_seq;
SELECT xmlelement(name main, xmlattributes(nextval('t_seq') AS rownum),
xmlforest(last_name, first_name) )
FROM emp;
DROP SEQUENCE t_seq;
Slide 38
SELECT xmlelement(name main,
xmlforest(last_name || first_name AS fullname, salary) )
FROM emp;
Slide 39
SELECT xmlelement(name main,
xmlelement(name fullname, xmlattributes(dept_id), last_name ||
first_name ),
xmlforest(salary) )
FROM emp;
Slide 40
SELECT xmlelement(name main, xmlcomment('Each Name Goes Here'),
xmlforest(last_name, first_name))
FROM emp;
Slide 41
SELECT xmlelement(name lastname, last_name),
xmlelement(name firstname, first_name)
FROM emp;
Slide 42
SELECT xmlconcat(
xmlelement(name lastname, last_name),
xmlelement(name firstname, first_name) )
FROM emp;
Slide 43
SELECT xmlelement(name main, xmlconcat(
xmlelement(name lastname, last_name),
xmlelement(name firstname, first_name) ) )
FROM emp;
Slide 44
CREATE TABLE xmltab (col1 XML);
INSERT INTO xmltab (
SELECT xmlelement(name main, xmlconcat(
xmlelement(name lastname, last_name),
xmlelement(name firstname, first_name) ) )
FROM emp);
Slide 45
SELECT * FROM xmltab;
Slide 47
SELECT xpath('/main/firstname/text()', col1) FROM xmltab;
Slide 48
SELECT textcol[1] FROM (
SELECT xpath('/main/firstname/text()', col1) AS textcol
FROM xmltab ) AS xmlsource;
Slide 49
select query_to_xml('select * from emp', TRUE, TRUE, 'scott');
Slide 50
select table_to_xml('emp', TRUE, TRUE, 'scott');