Category: RDBMS

April 22

At current state, my world is a container and it is useless. I want to store content in it but I doesn’t comply to my container…

Today I visited Cary Millsap’s blog site and read his latest article about “Messed Up App of the Day” and could sympathize with his remarks. While looking for other articles that I maybe missed I saw Cary’s link “Joel on Software” and thought, “hey, I almost forgot about that cool website, so have a look”. Joel made an impression on me a long time ago with an article that was called “How Microsoft Lost The API War”(2004). I crawled a little bit around on Joel’s web site and found that really, really great article about “Martian Headsets“, that I could relate too, because I am a pragmatist trying to apply idealistic methods, but as said in the first line of this blog post, it just doesn’t work.

Being a “Martian”, I also like all my Martian colors of red… and I also like my “Qxyzrhjjjjukltk“. Cary has the same problem with his blog posts (you will understand if you read Joel’s blog post about the “Martian Headsets“) about “Messed Up App of the Day URL’s. He created a practical solution to a problem introduced by a idealistic standard.

The cool thing about XML is it’s natural human nature: It is free format.
The horrible thing about XML is it’s natural human nature: It is free format.

April 15
March 19

I was triggered by a presentation of Dominic Delmolino during Hotsos 2008. He demonstrated a cool way of applying DDL database change management while making use of the Oracle database audit functionality. I combined the idea with Laurent Schneiders “out of the XML box thinking“, like for instance, his alternative use of the XMLTABLE syntax creating a pivot table. So why not do it the same way, solving “relational” problems, via XML functionality.

As said, the idea came up during Dominic Delmolino Hotsos presentation. Since Oracle 11g, the XMLDB functionality has a build in function called XMLDIFF. In Oracle 10 only a Java and C API exists, but probably could be used in the same way as described here. The XMLDIFF function compares two XML documents and captures the differences in XML conforming to an Xdiff schema. The diff document is returned as an XMLType document. Playing with Dominico’s idea, I thought, why not try to use the DBMS_METADATA.GET_XML function, transform this to an XMLType and then process it via XMLDIFF, and see if this can be useful for database change management purposes. So I tried.

So here it goes.

An example script can be downloaded here