• The power of metaphor

    We had a question on AskTom the other day, asking us to explain what a “latch” was. A simple metaphor sometimes does the trick   Read more

  • Datapump cleanup

    Sometimes if you’ve been building data pump jobs via PL/SQL, you might get some part of it incorrect, and thus the job is left in the state of “DEFINING”, ie, you are building it but never managed to complete the process.  An interesting anomaly is that when this happens, your current session struggles to clean… Read more

  • SQL*Plus hints and tips

    I just posted a video on how I get the most out of my SQL*Plus usage.  You can check it out here I reference various elements of my login.sql file throughout the video – so here’s login.sql file – feel free to utilise any parts of it for your benefit. col column_name format a30 col… Read more

  • Existence checks

    Often, to do an existence check for data, people issue a “SELECT COUNT(…)” against the relevant table. So in pseudo-code, the logic looks like something like this: select count(*) into my_variable from MY_TABLE where COL = if my_variable > 0 then … For unique key lookups, then that’s fine, but it’s a risky strategy as… Read more

  • Passing parameters

    I had an interesting question from a previous work colleague. She had a need to perform a query on attribute pairs. For the sake of discussion, we’ll assume that pairs are a shopping centre name, and a checkout aisle in that shopping centre. So for example, on screen, a user may say: Show me the… Read more

  • Why I love working on AskTom

    Today a question came in, and Swapnasis provided a nice simple test case, which makes my job so much easier.  Here’s a snippet from it SQL> create table TTT( 2 testid integer not null, 3 value integer not null, 4 time timestamp not null, 5 unique(testid, time) 6 ); Table created. See line 5 ?… Read more

  • My sessions at OpenWorld 2015

    OpenWorld is just around the corner, and I’m thrilled to be there again this year – it’s my first year as an Oracle employee, so it will be interesting to compare and contrast with previous years as an Ace Director.  I’ve got three conference sessions – I hope you can be there, and please feel… Read more

  • Virtualbox 5.0

    I like it when stuff just “works”. I’ve been using Virtual Box 4 for a long time now, and since my needs are relatively simple (ie, run a VM!) then I’ve not had any great cause to move to version 5.  But today I had a spare few minutes and thought “Well, its probably time”.… Read more

  • AskTom and formatting

    There’s an interesting “debate” going on under AskTom at the moment.  It’s hardly cause for major concern, but anyone is welcome to add their thoughts as comments to this blog post.  (Naturally, if your comments agree with my opinion, then that’s great.  If your comments don’t agree, then I’ll post them and ignore them –… Read more

  • Fun with array fetch

    I’ve lost track of the number of times I’ve worked with systems that didn’t run brilliantly because every database operation was the “row at a time” methodology.  Typically you see hundreds of routines (either in the database in PL/SQL) or further up the chain in C#, Java etc, and the “alarm bells” start ringing in… Read more

  • Evolution

    I’m a bit of a dinosaur when it comes to how long I’ve been using Oracle.  But you should never stop learning.  That’s why I’m participating in a cool OpenWorld session in a few weeks, all about the modern technologies and frameworks that can now be used to build awesome applications on top of the… Read more

  • exitcommit … or your career down the drain

    I recently posted a little video on the ‘exitcommit’ option in SQL Plus, adding a theatrical drama to present a worst case scenario of potentially destroying a Production system.  Take 3 mins to have a chuckle here. https://www.youtube.com/watch?v=uCgbxGayjXA My predecessor Natalka Roshak ‏tweeted an interesting followup that I thought I would share, namely, if you’re… Read more