Top 60 Oracle Blogs

Recent comments

February 2021

ALL_ARGUMENTS missing information?

I made a interesting discovery earlier this week when I was doing some analysis for some AskTom database procedures when prepping some regression tests. Here is a quick summary so that you won’t get the surprise I got. Smile

In 11g, if you create a packaged type and procedure that references that type, for example as per below:

Oracle Rolling Invalidate Window Exceeded(3)

By Franck Pachot

This extends a previous post (Rolling Invalidate Window Exceeded) where, in summary, the ideas were:

Oracle Cloud Infrastructure (OCI) and Terraform : First Steps 300w" sizes="(max-width: 308px) 85vw, 308px" />

We’ve got some stuff going on at work using Terraform, or Terrahawks as I like to call it, so I figured it was about time I had a play with it. I probably won’t be doing much of the project work myself, but I like to understand a bit about all the things we do.

Oracle DB on Azure with Multitenant Option

By Franck Pachot

If you want to run an Oracle Database in the Microsoft Azure cloud, you will install it yourself on a VM. And then, you can expect the same as when you install it in your premises, in a virtual environment. Except that Oracle makes it two times more expensive by accepting to license the processor metric on vCPUs at the condition that the Intel core factor is not applied. And in addition to that there is a weird limitation on multitenant. I create a VM with the 19c image provided by Azure. I’m not sure there’s a big advantage to have this image. You have an Oracle Linux OS, with all prerequisites (which is like having installed the preinstall rpm), and a 19.3 Oracle Home (which is like downloading it, unzip and runInstaller). But you will still have to apply the latest Release Update and create a database.

Turn Your Blog into a Podcast with Anchor

Blogging on is all about sharing your unique voice, and starting today, you can extend that to another platform: Anchor. We previously shared some tips and tricks for getting started with a podcast on and are thrilled to share this new option.

Anchor, part of the Spotify family, powers 80% of all new podcasts on Spotify, with free tools to easily create, distribute, and monetize, no matter how you record — including podcasting with your blog!

Creating an Anchor podcast from your site is free and seamless. After all, you’ve already got a whole blog’s worth of written content to use. With Anchor, all that’s left is converting your words into audio, which can be as easy as using your blog to quickly record a text-to-speech version.

Ansible tips’n’tricks: run select parts of a playbook using tags

I have recently re-discovered an Ansible feature I haven’t used in a while: tagging. Ansible allows you to define tags at various places of your playbook. On its own that wouldn’t be terribly useful, except that you can pass tags to ansible-playbook causing the interpreter to selectively run tasks tagged appropriately.

My example uses Ansible 2.9.6+dfsg-1 as it was provided by Ubuntu 20.04 LTS.

Tagging Ansible tasks

Here is the code of my somewhat over-simplified playbook for this blog post:

Video : FOR LOOP Iteration Enhancements in Oracle Database 21c

In today’s video we demonstrate the FOR LOOP iteration control enhancements in Oracle database 21c.

The video is based on this article.

If you’re not already got up to speed with qualified expressions in 18c, you might want to check this out also.

Hashicorp vagrant and the Vagrantfiles.

This post is about a fully documented but easy to miss feature of vagrant, which is the evaluation of the Vagrantfiles when a vagrant ‘box’ is started. As you can see, I wrote ‘Vagrantfiles’, which is plural. I (very naively) thought that the Vagrantfile in the directory where you want to start the ‘box’ determines the specifics of the vagrant ‘box’.

This begins with me trying to create a vagrant virtualbox VM using packer, where I specify a Vagrantfile during the packer build. I normally don’t spend a lot of thought on that, and just put in a very simple Vagrantfile, essentially just defining the box and setting memory and cpu amounts.

In this case, I decided to put in the Vagrantfile that I wanted to use for this special purpose ‘box’ as the Vagrantfile for the packer build, which has some ruby in it which adds a disk:

Free space requirements for ALTER TABLE

One of the very cool features from 12.2 onwards is that the vast majority of segment operations the require rewriting the existing data can be done online without interruption to service. But whether an operation is being done online or not, since DDL operations need to be atomic, the general rule is that when an object is being reorganised this work cannot be done in place. The reorganised segment must be written elsewhere in order for the original segment to be left untouched in the event of the operation failing midway. (No-one wants their table to vanish just because someone pulled out the wrong power cable!)

General consensus from the “blog-sphere” is that you thus need enough space to hold the existing segment and space for the new segment to be created, but I thought I’d explore that a little further, and there’s a few surprises.

Grafana, SQL and IN() list for multi-value variable

By Franck Pachot

I’ve recently looked at Grafana. Pros: it is really nice, I mean aesthetically. If you want to build a dashboard for your boss, or put it on a large screen in the open space, that’s beautiful. Cons: not mature. I’m working for years with technology that works. When I have a problem, I find the solution (blog posts, forums, mailing lists, support notes)… But with modern software, the first problems I encounter have a dead end in unresolved git issues. And I’m actually spending more time in finding workarounds than solving problems. Yes, Grafana is nice but is very far from what I can do with Excel in 5 minutes. However, when I find a workaround, I publish it to help others and hopefully find someone who has a better solution, so please leave a comment if what I do there is completely silly.