Using Oracle Driver in TSQLConnection - oracle

I am using Delphi XE2 and dbExpress in my application. While developing I come to know that I need to install SQL Native client to use MSSQL as driver in dbExpress connection setup (as client machine don’t have SQL installed on it)
Could you please let me know which client I need to install if I want to use Oracle as a Driver in dbExpress (as client machine don’t have any Oracle component installed)?

You need the Oracle Client corresponding to the bitness of your application.
For XE2, if your application is 64 bit, you need the x64 client.
If your application is 32 bit, you need the x86 client.
Installing the Oracle Client is a huge process - win32_11gR2_client.zip is around 700 MB - not bad just for a client! During installation, for DBExpress to work, you just need to select the OCI libraries, not ODBC nor OleDB providers, nor JDBC (unless other Java or .Net clients expect them).
You can install the Oracle Instant Client, which is a set of OCI libraries files - here . Get the latest version, even if your server is older. But there is not installer: you have to uncompress them in your path, or in the executable folder. If you put it in the path, be aware that it may break any installation of other "full clients". The Instant Client Package - Basic Lite: is the smallest (20 MB), works very well, but only with English error messages and Unicode, ASCII, and Western European character set support.

Oracle Instantclient is sufficient.

Related

How to create a user in SQLDeveloper with macOS?

I currently have a mac and need to use Oracle SQLDeveloper for study purposes for university. Download SQLDeveloper on the official Oracle website, but unlike windows that have to install and enter a password for SYSTEM, when downloading SQLDeveloper it was an executable file that did not need a previous installation, the application works well, only I cannot use the user SYSTEM, since at no time enter a password, since I do not have a SYSTEM user, I cannot create a user and I cannot do my university work.
If any of you know how to find the SYSTEM password or how to create a user in any other way, I would be very grateful
As you'll be using Oracle for studying purposes, installing anything but its Express Edition (XE) is probably too much for you.
Unfortunately, you can't install XE directly on Mac OS. I don't have Mac so I can't speak from my own experience, but my colleague does and here's what he did: installed virtual machine under MS Windows and put Oracle XE onto it. He also has SQL Developer installed on the same virtual machine and uses everything in the same (Windows) environment.
I'd suggest you to do the same, unless there's a database available to you over the Internet (i.e. you can connect to a database DBA installed on a server that resides on the University); in that case, you'd need info about that database and establish connection once you're in the network (probably via VPN).
If you choose to use a virtual machine, there are walkthroughs available on the Internet; here's one of them: How to Install Oracle on a Mac, see if it helps.
Or, see which preinstalled virtual machines Oracle offers for download, here.

Where should Oracle Client library be installed while trying to connect from Pycharm(installed locally) to oracle database(running in docker)

while trying to connect Pycharm installed locally to oracle database running in container through cx_oracle an error message saying "DPI-1047: Cannot locate a 64-bit Oracle Client library" is displayed. How to fix this?
SQL Developer installed in my local machine can access the database in docker. but Pycharm is unable to connect to it. Why is that ?
The error message is clear and includes a link with instructions to follow. Install the Oracle Client libraries, e.g. Oracle Instant Client, on the machine you are running Pycharm on.
The cx_Oracle installation instructions are here: https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html.
The link in the DPI-1047 will give you the same steps.
The architecture is shown in https://cx-oracle.readthedocs.io/en/latest/user_guide/introduction.html#architecture
Download and extract a 64-bit Instant Client from https://www.oracle.com/database/technologies/instant-client/downloads.html
Then set your system library search path (e.g PATH on Windows, or LD_LIBRARY_PATH on Linux) to include that directory. Then restart the application.
The fact that the DB is running in a container is not relevant. Oracle client libraries will communicate with local or remote databases. The DB version doesn't have to be the same as the version of the Oracle client libraries.

Go lang connect to Oracle 9i (using go-oci8)

I have a 32 bit Oracle DB (version 9i - 9.2.0.7.0), a 64 bit Mac and am trying to connect to it using go-oci8 with Go Lang (version go1.11.1 darwin/amd64).
I used SQL-Developer 4.0.2 to successfully connect to the DB and then enabled InstantClient connection through it using this tutorial. So I've got things running from the Oracle Client's side.
I'm using InstantClient Version 11.2.0.4.0 (32-bit) for MacOS (basic and SDK), I've used mainly this tutorial almost successfully. After everything, the error I'm getting is:
github.com/mattn/go-oci8 ld: warning: ignoring file /Users/myusername/Downloads/instantclient_11_2/libclntsh.dylib, file was built for i386 which is not the architecture being linked (x86_64): /Users/myusername/Downloads/instantclient_11_2/libclntsh.dylib Undefined symbols for architecture x86_64:
And then a long stack of symbols. Basically the Go oci8 library is trying to use C (which is 64 bit) and tries to build 64 bit files, which will then be used by Go. If I try with the 64 bit version of InstantClient, I have no problems, but I get a "driver: bad connection" error which is because 64bit won't work to connect some reason.
I have no idea what to do to resole this issue - can I somehow force the build of 32 bit files while using go get -u -v github.com/mattn/go-oci8? Or somehow make the 64 bit InstantClient version connect to the old 32 bit Oracle DB?
Any kind of help on how to get this running would be much appreciated.
Edit: I've tried 10.2 Oracle Client, but I can't connect it with go-oci8 (I'm assuming it doesn't support it). The error I get is ../github.com/mattn/go-oci8/oci8.go:113:25: could not determine kind of name for C.OCI_SYSASM
Final edit for people who have the same problem (coming on to a very old Oracle Database) - you can't interface with the readily provided solutions using Go. The libraries listed to work with Oracle operate with Client versions 11.2 and up.
The architecture of the Oracle Client have to match so architecture of your application. I.e. if your Go Lang is 64-bit then the Oracle Client have to be also 64-bit. It does not matter whether the database is 32 or 64-bit.
I think the main problem is, you cannot connect with an Oracle 11.2 Client to a (20 years old!) Oracle 9i database.
Check Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1) for details.
It says:
For connections between 10.2 (or higher) and 9.2 the 9.2 end MUST be
at 9.2.0.4 or higher. Connections between 10.2 (or higher) and
9.2.0.1, 9.2.0.2 or 9.2.0.3 have never been supported.
You did not tell us which version of "Oracle 9i" your ar using.

Oracle client tools 11g for mac, imp command

Do you happen to now if imp oracle command is included in the oracle client tools 11g for MAC OS?
Actually I have download the packages but I can't seem to find it and I am wondering if there is a trick for this.
Thank you
What you have downloaded is the 'Instant Client'. This is basically a sub-set of the Oracle client, just for connecting to the database. Find out more.
The Instant Client does not include admin utilities such as IMP. For that you need the standard client, which is basically the full database software. However, 10g was the only version ever available for MAC OS. I guess the demand wasn't there. How many MAC OS servers are there?

64-bit Oracle Client for v8 database

Okay, here's the deal: I have a C#/.NET app accessing an Oracle 8 database, that works well on our 32-bit machines. It works using a v.8 ODBC client, a 9i client, or a 10g XE client. However, nothing seems to work on a 64-bit windows machine. I did successfully install a 64-bit 11g client, only to find it refuses to talk to a v8 database, so I guess what I need is a 64-bit 10g, 9i or 8i client. I tried 9i and 10g XE with no luck. I have not yet tried the full 10g client.
I installed MDAC 2.8, but in the Admin Tools -> ODBC Data Source manager tool, none of those ODBC drivers show up, presumably because they are not 64 bit. Ony MS SQL shows up.
The weird thing is that there is an old program, Impromptu by Cognos, that works fine - it seems quite able to find and use the 32-bit v8 client that is installed on the system, but my app can't.
I found that I could see and create/edit ODBC data sources by making a copy of the ODBC Data Source tool shortcut, changing it to point to a different path (replace system32 with SYSWOW64), but data sources I create there are somehow hidden from my app. Is there a way to point my .NET app to a specific Data Source, maybe by creating a File DSN and specifying a full local path, for example?
This is driving me nuts. Help!
I finally got a client to work:
http://download.oracle.com/otn/nt/instantclient/10203/instantclient-basiclite-win-x86-64-10.2.0.3.0.zip
Thanks all for the comments and help.
Did you try the 11g ODP.NET 64 bit client? The ODP.NET client has no problems connecting to Oracle 8/9/10 databases.

Resources