In doing more work directly from my Macbook Air, I ran into a situation where native connectivity to an Oracle environment was needed.
From experience I have always been a big fan of the Full Oracle client, just because it comes with a lot of tools and utilities for troubleshooting, which makes the actual experience a bit more pleasant.
Looking & asking around, though, I learned fairly quickly that this client is just not available for Mac OSX… Thanks to Osama Mustafa for confirming.
So, a fact, although quite a number of IT pro’s are working with Mac!
This leaves no other choise than to divert to the Oracle Instant Client 11, which then, indeed, is just an 11g Instant Client (18.104.22.168)!
It would humor me if Oracle were to bring out a 12c Full Client for Mac, as well as an instant client, if someone would so desire.
To have some more tooling around the client, I downloaded all the packages including at least SQL*Plus.
Though the install process is relatively straight forward (download the archives and unzip them in place) getting SQL*Plus to actually run is a somewhat different ballgame!
As usual, when you start a tool, you’re bombarded by messages about unfound dynamic libraries. This set me (very briefly) on a path to place these files where they were expected on my Mac.
In a place like:
for instance, you would need to place a number of these libraries.
This leaves you with the option to populate your system with all these specific libraries, which is of course just fine, but not my choice (think of the mess in ever having to clean up) and especially not when it can be avoided.
A quick search pointed me to this excellent blogpost by Casey Lucas about this exact same issue. With a tool called ‘otool’* applied as suggested, I am now able to run SQL*Plus natively on my Mac without error messages.
* otool – object file displaying tool
If you need it, call it from the command line. It will install this and other development tools on your Mac.
That is nice, but it’s just only over halfway there.
Now I want something where I can just run:
without intricate connect-strings.
This leaves one minor “hack”, or rather “edit” required, your .bash_profile needs a bit of a path addition and an environment setting:
alias ll="ls -l"
Note: the alias was already in there 😉
To top it off, I created a small tnsnames.ora in the directory with the instant client (keeping all related files neatly tucked away together)
(PROTOCOL = TCP)
(HOST = 192.168.56.66)
(PORT = 1521)
(SERVER = DEDICATED)
(SID = xe)
And voila, goal acquired.
Never specify the password on the command line. Not only will it be shown, it will also be sent (most probably) unencrypted over SQL*Net