I am one of the lucky 25 winners of the first ever Oracle OpenWorld Suggest a Session on Mix. I would like to thank everyone who voted for my session which is now live on the Schedule Builder. Here are the details:
Session ID: S3301711
Title: Simple Tips to Quickly Find Answers to Your Oracle-Related Questions and Keep Your Oracle Skills Up to Date
Description: In this session, explore many useful online Oracle resources you may not know about. Use different search techniques, tips, and tricks to help you find answers quickly and accurately. Learn how to use RSS and Web 2.0 resources to stay up to date with the latest Oracle news, products, and people. And more fun stuff…
Date/Time/Place: Monday September 22 13:00 – 14:00 Moscone West Room 2014

I will post more details about the content of the session soon.
By the way, I’m also participating in a birds-of-a-feather tips and techniques panel, details of which you can find here.
See you…
Filed in Oracle with 3 Comments | Tags: OpenWorld, openworld08
Are you an Oracle-related blogger? Are you attending Oracle OpenWorld this year? If you answered yes to both questions, then you are invited to attend the yearly blogger meetup at the ThirstyBear Restaurant and Brewery, Sunday September 21 at 7:00 PM.
Mark Rittman has been the person organizing the blogger meetup events for the past few years. Mark passed the torch to me and I gladly volunteered to organize this year’s special event.
Like in 2007, OTN is sponsoring our get-together by establishing a tab at the bar, so there will complementary drinks and appetizers for a while (Thanks Justin, Vikki and Lillian).
If you would like to attend, make sure you RSVP on the event’s page on OracleCommunity.net.
See you…
Filed in Oracle with 1 Comment | Tags: OpenWorld, openworld08On July 1st, blogs.oracle.com was migrated to a new platform, Six Apart’s Movable Type Enterprise on top of Oracle Content DB. The list of Oracle related blogs (authored by Oracle employees and non-employees) has moved to this page on the Oracle Wiki. Only Oracle employees are eligible to host blogs on blogs.oracle.com.
Along with the migration came a less obvious change, blogs.oracle.com no logger aggregates non-employee blogs. Here is what Justin Kestelyn wrote in this tweet: “blogs.oracle.com will not aggregate nonemployee blogs after all – orana.info does too good a job of that!”

Currently, the total number of blogs hosted on blogs.oracle.com and aggregated by OraNA.info is 78. New blogs are being added to blogs.oracle.com. I can not keep OraNA.info current with this influx of new Oracle employee blogs.
So here is what I’m thinking: I will delete the 78 blogs.oracle.com blogs from OraNA.info, and instead aggregate one feed, the blogs.oracle.com recent posts feed. I will create one additional category on OraNA.info just for this feed. If I do that, OraNA.info will be the “one stop shop” for Oracle employee as well as non-employee blogs.
What do you think?
Update: Based on your feedback, OraNA now aggregates the blogs.oracle.com feed. I have also created the OraNA updates Twitter channel (RSS) to publish site news and recently added blogs.
Filed in Oracle with 11 Comments | Tags: aggregator, blog1613 Records Found, that’s the number of sessions currently up on the Oracle OpenWorld content catalog. I know I’ll be attending the AppsLab Session that Jake just blogged about and a few more. But, it looks like the sessions’ schedule hasn’t been posted yet.
I’ll be on a panel with several other Oracle ACE Directors discussing various Oracle database related topics:
| Session Details | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
Lewis Cunningham organized this session and will be leading the discussion.
Looking forward to seeing you among the attendees. Feel free to bring your tips and/or questions with you.
Filed in Oracle with Comments Off | Tags: openworld08In part 1, we reviewed HTTPURIType and DBURIType. Let’s now go over a few examples of more advanced XML using the SQL functions XMLTable and XMLQuery, Oracle’s native support for XQuery.
SQL functions XMLQuery and XMLTable are defined by the SQL/XML standard as a general interface between the SQL and XQuery languages. XMLQuery and XMLTable let you take advantage of the power and flexibility of both SQL and XML. Using these functions, you can construct XML data using relational data, query relational data as if it were XML, and construct relational data from XML data.
Let’s query blog titles from the OraNA.info RSS feed without using XQuery:
SQL> SELECT value(i).extract('/item/title/text()'
2 ,'xmlns:dc="http://purl.org/dc/elements/1.1/"' ).getstringval() title
3 FROM TABLE (XMLSequence(
4 HTTPURITYPE('http://feeds.feedburner.com/orana').getxml().extract('//item'))) i;
TITLE
--------------------------------------------------------------------------------
Oracle ANZ Blogosphere Highlights
Taking the Plunge: Part 2
8 Things about Louise
Working with PHP and Oracle Presentation
Removing Oracle Database XE from Linux
...
Starting with Oracle database 10gR2 you have the option to use the XQuery SQL function XMLTable. You use XMLTable to shred the result of an XQuery-expression evaluation into the relational rows and columns of a new, virtual table. You can then insert the virtual table into a pre-existing database table, or you can query it using SQL. You use XMLTable in a SQL FROM clause.
Let’s change the query above to use XMLTable and return the blog author as well:
SQL> SELECT *
2 FROM XMLTable (
3 '//item'
4 passing HTTPURITYPE('http://feeds.feedburner.com/orana').getXML()
5 COLUMNS title varchar2(4000) path '/item/title/text()',
6 creator varchar2(4000) path
7 '/item/*[namespace-uri()="http://purl.org/dc/elements/1.1/"
8 and local-name()="creator"]/text()'
9 );
TITLE CREATOR
---------------------------------------- --------------------
Oracle ANZ Blogosphere Highlights Carl Terrantroy
Taking the Plunge: Part 2 Jake
8 Things about Louise Louise Barnfield
Working with PHP and Oracle Presentation alison.holloway
Removing Oracle Database XE from Linux alison.holloway
...
And here is another example that selects the entries from the Oracle room on FriendFeed:
SQL> SELECT *
2 FROM XMLTable (
3 '/feed/entry'
4 passing HTTPURIType ('http://friendfeed.com/api/feed/room/oraclestuff?format=xml').getXML()
5 columns title varchar2(4000) path 'title/text()'
6 );
TITLE
----------------------------------------
Oracle ECM and Skywire Database modeling support in SQL Developer
Oracle Fusion Middleware Strategy Webcast Replay
...
You can also use the XQuery function ora:view within an XQuery expression to query a relational table or view as if it were XML. Here is a simple example using the table we created in part 1:
SQL> SELECT *
2 FROM XMLTable(
3 'for $i in ora:view("t")
4 return $i');
COLUMN_VALUE
---------------------------------------
<ROW><A>1</A><B>Eddie</B></ROW>
<ROW><A>2</A><B>John</B></ROW>
...
The other XQuery function is XMLQuery. You use it to construct or query XML data. This function takes as arguments an XQuery expression, and an optional XQuery context item. The context item establishes the XPath context in which the XQuery expression is evaluated. Additionally, XMLQuery accepts as arguments any number of SQL expressions whose values are bound to XQuery variables during the XQuery expression evaluation. The function returns the result of evaluating the XQuery expression, as an XMLType instance.
Here are a couple of simple examples:
SQL> SELECT XMLQuery('(100 to 105)'
2 RETURNING CONTENT) AS output
3 FROM DUAL;
OUTPUT
-------------------------------------------------
100 101 102 103 104 105
SQL> SELECT XMLQuery('for $i in ora:view("t")
2 return <ROWS>{$i}</ROWS>'
3 RETURNING CONTENT) AS col
4 FROM DUAL;
COL
---------------------------------------------------
<ROWS><ROW><A>1</A><B>Eddie</B></ROW></ROWS><ROWS><
The above examples give you a “taste” of the capabilities of XQuery in Oracle. For more detailed information please refer to the following list of resources:
Here are some cool and useful things you can do with XML using pure SQL in an Oracle database.
HTTPURIType
The HTTPURIType provides support for the HTTP protocol. It uses the UTL_HTTP package underneath to access the HTTP URLs. With HTTPURIType, you can create objects that represent links to remote Web pages (or files) and retrieve those Web pages by calling HTTPURIType member methods.
The getXML() member function returns the XMLType located at the address specified by the URL. An error is thrown if the address does not point to a valid XML document.
SQL> SELECT HTTPURITYPE('http://feeds.feedburner.com/orana').getxml() orana_feed
2 FROM dual;
ORANA_FEED
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feed
...
The getClob() member function returns the CLOB located by the HTTP URL address.
SQL> SELECT HTTPURITYPE('http://google.com/').getClob() goog_html
2 FROM dual;
GOOG_HTML
--------------------------------------------------------------------------------
<html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859
...
DBURIType
The DBURIType provides support for DBUri-refs. A DBUri-ref is an intra-database URL that can be used to reference any row or row-column data in the database. With DBURIType, you can create objects that represent links to database data, and retrieve such data as XML by calling DBURIType member methods.
SQL> CREATE TABLE t (a NUMBER, b VARCHAR2 (10));
Table created.
SQL> INSERT INTO t (a,b) VALUES (1, 'Eddie');
1 row created.
SQL> INSERT INTO t (a,b) VALUES (2, 'John');
1 row created.
SQL> INSERT INTO t (a,b) VALUES (3, 'Pat');
1 row created.
SQL> commit;
Commit complete.
The member function getXML() returns the XMLType located at the address specified by the URL.
SQL> SELECT DBURIType('/SCOTT/T').getxml()
2 from dual;
DBURITYPE('/SCOTT/T').GETXML()
---------------------------------------------------------------------------
<?xml version="1.0"?>
<T>
<ROW>
<A>1</A>
<B>Eddie</B>
</ROW>
<ROW>
<ROW>
<A>2</A>
<B>John</B>
</ROW>
...
The above was tested on Oracle Database 10g Enterprise Edition Release 10.2.0.2.
In part 2 we’ll explore more XML goodness…
Sources and resources