Back in 1993, I discovered that I could get paid money for doing fun stuff with computers.
Over the years, I've specialised in Oracle Databses as a developer, a DBA and sometimes, an architect.
It's my evil alter-ego - The Antikyte - who writes a blog about my various technical adventures.
He reckons it's something to do until we finally get introduced into the Marvel Comic Universe.
I currently live in the South-West of England with Deb, my long-suffering wife.
After months of trouble-free operation, Citrix Receiver decided to wreak some havoc one morning last week.
Connecting to work (using Firefox on Ubuntu and Citrix Receiver for Linux 13.8) was trouble free as usual.
However, when I then tried to select a PC to remote into, Citrix informed me that …
“You have chosen not to trust Entrust Root Certification Authority – G2. SSL error 61”
At that point, I reflected that what I knew about Citrix and SSL certificates would fit on the back of a fag packet.
After some intensive “research” it should now fit into a short blog post… Continue reading →
It’s true, Oracle are giving away free stuff. “Oracle ?”, I hear you say, “as in Larry’s Database Emporium and Cloud base ?” The very same.
It’s been going on for quite a while and includes relatively hidden gems such as SQLDeveloper Data Modeler.
There is some confusion around this particular tool for a couple of reasons.
When it was first released (sometime around 2009 as I recall), Data Modeler was an additional cost option. However, that didn’t last long.
At present (and for a number of years now), it is available either as a completely standalone tool, or as a fully integrated component of the SQLDeveloper IDE.
Either way, it costs exactly the same as the SQLDeveloper IDE – i.e. nothing.
I can tell you like the price, want to take it for a spin ?
I’m going to focus here on using the integrated version of Data Modeler. This is because
I want to use it for small-scale modelling of the type you might expect to find when using an Agile Methodology
I’m a developer and don’t want to leave the comfort of my IDE if I don’t need to
What I’m going to cover is :
Viewing a Table Relationship Diagram (TRD) for an existing database table
Creating a Logical Data Model and Entity Relationship Diagram (ERD)
Generating a physical model from a logical model
Generating DDL from a Physical Model (including some scripting tweaks to suit your needs)
Using a Reporting Schema and pre-canned SQLDeveloper Reports to explore your models
This post is about introducing the features of Data Modeler in the hope that you may find them useful.
It’s not intended as a paragon of data modelling virtue.
Come to that, it’s not intended as a definitive guide on how to use this tool. I’m no expert with Data Modeler (as you are about to find out). Fortunately, there are people out there who are.
If, after reading this, you want to explore further, then you could do worse than checking out words of Data Modeler wisdom from :
“You can’t have your cake and eat it !” This seems to be a regular refrain from the EU in the ongoing Brexit negotiations.
They also seem to be a bit intolerant of “cherry picking”.
I’ve never really understood the saying, “You can’t have your cake and eat it”.
What’s the point in having the cake unless you are going to eat it ?
Fortunately, I’m not alone in my perplexity – just ask any Brexiteer member of the British Cabinet.
For those who want to make sense of it ( the saying, not Brexit), there is a handy Wikepedia page that explains all.
When it comes to Unit Testing frameworks for PL/SQL, compromise between cake ownership and consumption is usually required.
Both utPLSQL 2.0 and ruby-plsql-spec have their good points, as well as some shortcomings.
Of course, if you want a more declarative approach to writing Unit Tests, you can always use TOAD or SQLDeveloper’s built-in tools.
Recently, a new player has arrived on the PL/SQL testing scene.
Despite it’s name, utPLSQL 3.0 appears to be less an evolution of utPLSQL 2.0 as a new framework all of it’s own.
What I’m going to do here, is put utPLSQL 3.0 through it’s paces and see how it measures up to the other solutions I’ve looked at previously.
Be warned, there may be crumbs…
The recent Bank Holiday weekend in England provided me with a perfect opportunity to get on with some D.I.Y.
We have a collection of movie files, which I’ve stored on an external USB hard-drive. At the moment, these files are only accessible from the smart TV it’s plugged into.
I want to be able to stream these movies to the various Connected Devices we have around the house.
After many happy years, we decided to move house.
Deb has always said she wants to live near the sea and, despite it’s many attractions, Milton Keynes is about as far inland as you can get on the UK mainland.
Initially, the idea of a new home conjured up rather different images for each of us.
Deb envisioned a lovely little thatched cottage complete with an open fire around which to warm ourselves on those cold winter evenings.
I wanted a hollowed out volcano.
Eventually we compromised. Deb accepted that her ideal may present something of a fire hazard and, to be fair, so did mine.
That’s how we found ourselves looking around a newly built house in North Devon.
Deb was immediately impressed with the space, the potential…and all those other things that those daytime property programs say you should look for.
I was equally impressed, but for a very different reasons. I had noticed a little white box on the wall in the living room. When questioned, the Sales Advisor had uttered the magic words “Fibre to the Premises”.
Being a mere 5 minutes away from the Atlantic Highway was just an added bonus.
Another Ashes Tour to Australia has come and gone and the home team once again hold The Urn.
For any non-cricket fans, I should probably explain.
Every four years, England sends their Men’s and Women’s Cricket Teams to Australia on a goodwill mission.
The object of the exercise is to make Australians feel good about their country as their teams inevitably triumph.
These recently concluded contests provide the theme for the illustration of the less-than-straightforward circumstance surrounding the ORA-06592 error which follows.
When encountering this error, you’ll probably see something like
ORA-06592: CASE not found while executing CASE statement
06592. 00000 - "CASE not found while executing CASE statement"
*Cause: A CASE statement must either list all possible cases or have an
*Action: Add all missing cases or an else clause.
Despite this apparently definitive advice, you don’t always need to cover any possible case, or include an ELSE clause… Continue reading →
My recent post about PLS-00231 prompted an entirely reasonable question from Andrew :
“OK so the obvious question why [can’t you reference a private function in SQL] and doesn’t that defeat the objective of having it as a private function, and if so what about other ways of achieving the same goal ?”
I’ll be honest – that particular post was really just a note to self. I tend to write package members as public initially so that I can test them by calling them directly.
Once I’ve finished coding the package, I’ll then go through and make all of the helper package members private. My note was simply to remind myself that the PLS-00231 error when compiling a package usually means that I’ve referenced a function in a SQL statement and then made it private.
So, we know that a PL/SQL function can only be called in a SQL statement if it’s a schema level object or it’s definied in the package header because that’s the definition of a Public function in PL/SQL. Or at least it was…
In formulating an answer to Andrew’s question, it became apparent that the nature of Private functions have evolved a bit in 12c.
So, what I’m going to look at here is :
What are Private and Public package members in PL/SQL and why you might want to keep a package member private
How 12c language features change our definition of private and public in terms of PL/SQL objects
Hopefully provide some up-to-date answers for Andrew