A custom delivery channel is one way to achieve this. Does the Oracle DB already have a web service component? Is there a redistributable library for communicating with the database?
If there is a web service component already existing, the Web Service delivery channel distributed with Notifications may work for you. However, it is limited to sending primitive data types and certain special pieces of content are not available to it (e.g. Triggering Condition). If that doesn't work you, then a custom delivery channel would be the way to go.
With a custom delivery channel there are two kinds of architectures you can go with. One is that you have your custom delivery channel directly which calls to the database through whatever library Oracle supports. Another is that your delivery channel makes a call to a service hosted elsewhere that then makes calls through said library to the Oracle DB. The difference between these is that the first is easier to code, but it requires whatever libraries either already deployed on client machines or redistributable via AF's support assembly feature. The second can require a little more work up front (you need to write a delivery channel and a service that it can talk to), but is easier to maintain over time because you don't need libraries distributed to many machines. The second architecture is used by the OCS Delivery Channel. It actually does not talk to OCS directly but instead communicates with a intermediary we call the OCS Relay Service. We chose this architecture because sending to OCS requires libraries that are not redistributable via AF's support assembly feature and special provisioning of the service machine on the OCS server.
There are sample delivery channels provided in the Notifications Developer Tools that you can look at. Check the download center under PI Analytics. Also if you are going to vCampus in a few weeks there is a session on writing a custom delivery channel that a couple of us Notifications developers will be attending.