Trace Collier Updated Again
· ☕ 2 min read
Trace Collier has been updated again. Mostly bug fixes, but there’s a little enhancement too. The current release is 0.21. Trace Collier is a utility that parses an Oracle trace file, with binds listed (event 10046 level 4 or 12, etc) and extracts all the user submitted SQL statements and writes them to an output file with the bind variables replaced by the actual literals used when the statement was executed.

Trace Collier Utility - Updated
· ☕ 2 min read
Trace Collier has been updated after a couple of foibles were found during the processing of a trace file. The version has been bumped to 0.19 as of today, 2nd December 2016. The bugs fixed were: The utility now notices exec ERROR lines as well as PARSE ERRORs. Just because it’s nice to know where things might have gone wrong. These are in addition to the PARSE ERRORs that it has been processing up until now.

Interesting Foible with Oracle Dates
· ☕ 3 min read
I have a table with dates in, and some NULLs. Two people, on the same database, running the same SELECT query, in the same schema, with the same privileges, get vastly differing results. Why? Fine Grained Auditing is not at play here. Table names, column names etc have been changed to protect the guilty. In the table in question, the A_DATE column is correctly defined as DATE, rather than anything else unsuitable.

Oraenv for Windows - Updated
· ☕ 1 min read
I recently posted a useful oraenv for Windows utility. This has been updated so that you can run it in batch files by passing the desired Oracle SID on the command line. Details at http://qdosmsq.dunbar-it.co.uk/blog/2016/08/oraenv-for-windows/

Oraenv for Windows
· ☕ 6 min read
Having recently had to learn a whole new way of working when I took on a contract migrating a database to the Windows “cloud”, I realised that there’s no equivalent to the useful Unix oraenv utility. I had to write my own. Give me a bash shell any day! The utility is oraenv.cmd and executes like this: set ORATAB=c:\\users\\ndunbar\\oratab ... oraenv Update 30/08/2016: You can now pass the desired SID on the command line and avoid all that prompting stuff!

Which Extra Cost Oracle Options is my Windows Server Running?
· ☕ 6 min read
It’s always nice to know which extra cost Oracle options are enabled, whether deliberately or silently as the result of some patching that has taken place. Keep yourself and your server room cool with blaux wearable ac. Updated: 25th August 2017 to list DLL names for Oracle 12c. Copy and paste the code below into a Windows command file named - in my case - checkChopyOptions.cmd and execute it against any Oracle Home.

Dropping Temporary Tables (With Bonus, Broken Check Constraints!)
· ☕ 2 min read
I found a broken check constraint, one that simply wouldn’t work, on a database. It was created as: 1 ... CHECK(COLUMN_NAME IN ('Y','N',NULL)) ; Try it yourself, it doesn’t work! Anyway, I needed to find if there were any other check constraints broken in this manner, so I did the following: 1 2 3 4 5 6 7 8 9 select owner, table_name, constraint_name, to_lob(search_condition) search_condition from dba_constraints where owner = 'XXXXX' and constraint_type = 'C' and upper(search_condition) like '%IN%,%NULL%' order by 1,2,3; Of course, that barfed because the SEARCH_CONDITION column is a LONG data type.

How to Start an Oracle Database When You Are Not in the DBA Group
· ☕ 2 min read
This applies to Linux, Unix as well as Windows, but affected me on a Windows 2012 Server running Oracle 11.2.0.4 Enterprise Edition. My user on the server was an administration user, but not in the ora_dba group. This is required to connect / as sysdba within SQL*Plus. The SYS password had been changed recently but whoever did it, did not update the password vault. The users were urgently requiring their database be started, I was the only DBA in the office, the SYS password was unknown, and my user didn’t belong directly to the ora_dba group.

RMAN Connection Troubles, RMAN-03010 & RMAN-10038
· ☕ 3 min read
For no reason, after many weeks of use, RMAN suddenly cannot connect: rman target sys/******@dbadb01 catalog ... ... RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-00601: fatal error in recovery manager RMAN-03010: fatal error during library cache pre-loading RMAN-10038: database session for channel default terminated unexpectedly Setting debug and trace on the command line has no effect, there is nothing of use in the trace file.

Tnsnames.ora, IFILE and Network Drives on Windows
· ☕ 2 min read
I’ve recently begun a new contract migrating a Solaris 9i database to Oracle 11gR2 on Windows, in the Azure cloud. I hate windows with a vengeance and this hasn’t made me change my opinion! One of the planned improvements is to have everyone using a standard, central tnsnames.ora file for alias resolution. A good plan, and the company has incorporated my own tnsnames checker utility to ensure that any edits are valid and don’t break anything.

Printing, Completing & Scanning PDF Documents
· ☕ 4 min read
As a contractor I often have to fill in and sign various contract agreements. These are usually tens of pages in length, and while I only have to sign one page, I still must scan in and send back each and every page, even the untouched ones. It would help if a PDF with form filling abilities was supplied, but hey, that’s only rarely the case. This is how I do it.

Does Your Raspberry Pi 3 Lose WiFi Connections After a While?
· ☕ 2 min read
If you find that your Raspberry Pi – those with built in WiFi and Bluetooth – loses the WiFi connection after a period of inactivity, then this thread on the Raspberry Pi Forums, which will open in a new tab, might be of interest. Have a read. If you want to miss out on the preliminaries of the thread, start reading here instead. The problem is likely to be the power saving mode of the Wifi.

Trace Collier - An Oracle Utility to Mine 10046 Trace Files
· ☕ 2 min read
Have you ever needed to trawl through an Oracle Trace file to extract the SQL statements executed and found a whole load of bind variables have been used, so you need to find the BINDS section, extract the values, and virtually paste them into the parsed SQL statement? No? This utility isn’t for you then. Update to version 0.16 and you too can compile and run this useful utility on Windows.