Paying someone to learn for you?

In my previous post called Nobody is an expert at Oracle Database 18c I said,

“There will be lots of people and companies who will happily take your money to learn the new tech, but that’s probably the subject of another post…”

Here is that post. 🙂

I see two distinct scenarios, and have two very different attitudes to them.

The Good

When something is new to the market, there is nobody that has the skills you need, but there are people/companies with a wealth of experience and a proven track record of picking up new skills and delivering good results.

I totally understand someone wanting to pay these types of people/companies to help them get to their goal. This is mutually beneficial as the customer gets to their goal in a shorter space of time than if they did it all themselves, and the person/company doing the investigation and work gets new skills and real world experience at the new tech.

The important point is both sides need to clearly understand this situation before work gets underway, as it might affect timescales and cost of the work.

The Bad and the Ugly

There are a lot of people and companies that are using their clients to improve their skills without the customer being aware of the relationship they are in. To me this is robbery. They have represented themselves as something they are not and that is a problem.

In some cases they might still deliver a reasonable product in a reasonable timescale, but in some cases not. 🙁 In some ways the result is not really the issue, it’s the deceit that is the problem. It’s usually really easy to spot, as the saying goes, you don’t have to know how to swim to recognise when someone is drowning.


I’m surprised how many people don’t ask for reference customers, or if they do, they never follow up on them properly. You can tell a lot by what is said and what is not said if you are asking the right questions. If the person/company doesn’t have a track record of delivering the thing you are asking for, do you really want them?

I emphasised the thing you are asking for, because it is a really important point. A person/company might be awesome at some related stuff, which might not be exactly what you are looking for, but might fool you into thinking they know what they are doing. To use myself as an example, I know a bit about Oracle databases and WebLogic, but does that mean I’m the right person to work on OBIEE that uses Oracle databases and WebLogic? I can tell you the answer to that. It’s NO! If I were an expert at eBusiness Suite does that mean I’m the right person to work on Oracle Cloud Applications? I can tell you the answer to that too. It’s NO!

As I mentioned before, if both parties understand what they are getting into I totally understand why you would want to pay someone to learn some new stuff for you. If you as a customer don’t know this is what is happening, that’s a problem!



Nobody is an expert at Oracle Database 18c

Every time a new database version is released a group of people, myself included, start pushing out content about it. I can guarantee you one thing about all these people. None of them are experts at Oracle 18c! There isn’t a single expert at 18c on the planet. Not even in Oracle. To be honest, I would say there are very few people who could really call themselves experts at 12cR2 at this point. Why? Because it takes time to get good at stuff and even 12cR2 hasn’t been out that long. It’s about 1 year since it was released for use on-prem (see announcement). Yes, it was around on cloud for a while before then, but most folks have had 12cR2 for 1 year and that’s it. Most people writing about 18c have had it for a few days tops. 🙂

So you’ve got one year of experience at 12cR2 right? I’m not so sure. You see you’re probably spending a lot of time working on 11gR2 and/or 12cR1 instances, as well as the odd 12cR2 instance that has made if to production. Humans are pretty lazy, so you are probably still doing a lot of stuff “the old way”.

I mentioned on a recent mailing list conversation, my approach to a new version is as follows.

  • I stop using the old version for my non-work environments. I’m 100% on the new version from day 1.
  • I try to move to the latest version as quickly as possible for work, with the necessary application testing of course.
  • I try to use the new version as “vanilla” as possible. Defaults for everything. I try not to bring my old habits with me to the new version.
  • I use all the new features (that I am licensed for), including all the automated features that are available. For example, when multitenant came out, after a small period of denial, I committed myself to it. My default stance was I will use it (lone-PDB for free) unless (A) a vendor doesn’t support it, or (B) I find an issue that means switching to it will be a problem for that project.

I’ve been doing this for a long time and this approach has served me well, but I still think it takes me a few years before I feel really confident with a new version.

I don’t think many of the good content producers throw around the term “expert” very often, but I think some of the people who follow can have unrealistic expectations when they look at content on the internet. Most people are writing about something new they are doing, so at the point they are writing it, they are far from being experts. If you’re lucky they will go back and revise that content when they learn more, but more often than not they don’t. As a result, you are often following the guidance of a first-time user. 🙂

So when you ask me to help you with your implementation of Data Guard between two 18c Exadata machines, you’ve got to realise how naive that question is. There will be lots of people and companies who will happily take your money to learn the new tech, but that’s probably the subject of another post… 🙂



Oracle Database 18c : Deprecated and Desupported

I was looking through the list of deprecated and desupported features along with terminal releases in Oracle Database 18c and there were some surprises.

This won’t be a complete list, so I would advise you to check it out for yourself (starting here), because what is important for me may not be for you, and vice versa. In no particular order, and not taking it too seriously, here we go.

  • Deprecation of Oracle Multimedia : I guess we could see this coming. There was a comment by someone important in a previous OpenWorld briefing that sounded to me very much like, “But you store images on the file system!” I commented to a couple of people at the time, and even went to speak to some folks on a demo stand who weren’t best pleased, and here we are. Of course you can still store stuff in BLOBs and CLOBs, but it seems Oracle have given up on trying to do more than be a data bucket for multimedia stuff. Now this isn’t one of those, “we’ll deprecate it, but never remove it”, messages. The docs say it will not be present in 19c. Looking at the release docs, 19c is the equivalent of, so it will be removed during the lifespan of the 12.2 product. I know we are not meant to think of the old numbers anymore, but I think that is interesting.
  • Package DBMS_XMLQUERY is deprecated : I’m including this for the purposes of nostalgia. It’s a long time ago, but I think DBMS_XMLQUERY was the first XML-related package I used for generating XML in an Oracle database, although I had already done some XML parsing in 8i. It’s a good thing this is going, because it had a natural successor in DBMS_XMLGEN for a long time. Having it around only serves to confuse. Even so. 🙁
  • Terminal Release of Oracle Streams : Streams have been deprecated for a long time, but 18c is the terminal release for it. The doc says, “Oracle Streams will be desupported from Oracle Database 19c onwards”, so in the lifespan of the 12.2 patchsets it will disappear. As soon as it was deprecated Streams was dead to me, but I still hear people talking about using it.
  • STANDBY_ARCHIVE_DEST and UTL_FILE_DIR desupported : Oh the bad old days, how I miss them. Everyone had TB and Rickets, but you could leave your back door unlocked! Screw your 24X7 operations, I’m bouncing the database because I want to add a new path to the UTL_FILE_DIR initialisation parameter. I actually had someone ask me about this a few months ago. Out with the old. I’ll get my coat!
  • Returning JSON True or False Values using NUMBER is Desupported : Returning 1 and 0 instead of ‘true’ and ‘false’ when speaking about JSON sounds silly to me, so I’m all in favour of this. I guess it will be annoying for those that have just got to grips with doing JSON in Oracle and have to refactor their code already because they chose the wrong path.
  • Oracle Administration Assistant for Windows is Desupported :  I only threw this one in because I know people lose their minds when some tool that is already long past its sell-by date is removed from the Windows implementation. Let’s start a Twitter campaign with #BringBackTheToolWeNeverUse and stick it to the man. 🙂

No time to worry about what they are getting rid of. There’s all the lovely new stuff you don’t understand yet. That’s really what you should be afraid of! 🙂



Oracle Database 18c on the Oracle Database Cloud Service

In a previous post I mentioned the release of 18c on Oracle Cloud and Engineered Systems. The only way you could get that on the Oracle Cloud at the time was if you were using an engineered system on the cloud. As a result us folks that don’t have pockets that deep were forced to get our 18c fix on LiveSQL.

You can now get Oracle Database 18c on the Oracle Database Cloud Service, the DBaaS offering, on Oracle Public Cloud (OPC), so you don’t have to have such deep pockets anymore. It also means you can probably get a free trial now.

I’ve fired one up and updated an old article (here) to have the latest screen shots.

Happy days!



PS. I’m not overly bothered about constantly updating screen shots for cloud service articles as they change so frequently, as do the names of the services from time to time. As long as the general message is OK, that’s good enough. If you try to stay on top of the quarterly roll out you would never get something new done. 🙂