Lazarus 1.2.4 (FPC 2.6.4)
Oracle XE 11.2
Oracle Instant Client 32bit (Basic & SqlPlus)
I have been able to use the Lazarus TOracleConnection in the designer to connect on Windows 7 and CentOS Linux. When attempting to do the same in OSX Lion I get "Can not load Oracle client library libociei.dylib. Is it installed?" It is located in /Library/Oracle/instantclient_11_2.
I am able to connect and query via sqlplus on the Mac. Here is the contents of my .bash_profile (paths are accurate):
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Library/Oracle/instantclient_11_2
TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin
PATH=$PATH:/Library/Oracle/instantclient_11_2
CLASSPATH=$CLASSPATH:$ORACLE_HOME
export DYLD_LIBRARY_PATH
export TNS_ADMIN
export PATH
export CLASSPATH
ORACLE_HOME is set to /Library/Oracle in Environment Variables
Can anyone tell why can't I connect through Lazarus running on OSX?
I'm neither knowledgable in Oracle nor OS X, so I just try to give some pointers:
Afaik the lazarus code just tries to dlopen('libociei.dylib').
So that either means
it can't find it because the lib has a different name (I assume you checked this)
it can't find it due to path issues (DYLD_LIBRARY_PATH should be ok, but temporarily try to set it globally in case a spawned process doesn't receive the changed env
it can't load it due to 32-bit vs 64-bit or other architectural reasons.
it can't load it due to other errors. (missing dependencies, security/permissions)
One can try to initialize the oracle module directly with a custom path.
Try using unit ocidyn in the lpr and then
do a
initialiseOCI('/your/whatever/path/libociei.dylib'); as first line in your .lpr
Note: If the error changed from "is it installed?" to "is it already loaded?", you are on to something, since you managed to load it at least once. I mention this because this subtle change often goes unnoticed.
My immediate workaround is to open Lazarus.app in Terminal. The designer works as advertised this way. The resulting .app can be run successfully from /Applications.
Related
I'm having a difficult time getting the Oracle 12.2.0.1.0-2 ODBC drivers and Instant Client (Basic Lite version) working with homebrew-installed unixODBC 2.3.5 under MacOS 10.12.6 (Sierra).
Extracting both of the Oracle ZIP files to /opt/ora12/instantclient_12_2, creating symlinks for libclntsh.dylib and libclntsh.dylib.12.1, then pointing odcb to the /opt/ora/12/instantclient_12_2/libsqora.lib gives a file not found error. While the path definitely exists and has good permissions, inspecting the dylib with otool -L shows that the #rpath directories are not finding the supporting libraries.
If I pull down the 12.2 sqlplus client, extract it to the same instantclient tree and run the binary, the CLI works fine. This seems to be some sort of dylib loading issue with odbc, but I'm not sure how to fix it. I've tried setting DYLIB_LIBRARY_PATH, copying all the libraries straight into /usr/local/lib, all to no effect.
I've not yet tried to pull out install_name_tool and hard coding search paths (getting further in the weeds than I've done before on MacOS) and I'm hoping something so drastic and non-portable isn't required. Is there a step to the install process I'm missing to get this working?
Thanks in advance!
After significant back and forth on the Oracle Community forums, the condensed solution is documented at this blog post: https://blogs.oracle.com/opal/installing-the-oracle-odbc-driver-on-macos?dd
In brief, the Oracle ODBC supplied odbc_update_ini.sh needs to be ran after first patching to change the reference from libsqora.so.12.1 to libsqora.dylib.12.1. Two libraries (libclntsh.dylib.12.1 and libclntshcore.dylib.12.1) then need to be symlinked into a library location on your PATH (I used /usr/local/lib).
With the above config (using the Basic client instead of Basic Lite, though Basic Lite should work) and the necessary tnsnames.ora black magic (TNS connection strings are covered in many other SO questions), I was able to connect both with command line isql and with my true goal, R's odbc and DBI using unixODBC.
I am installing weblogic 12c (12.1.3) on RHEL (Red hat enterprise Linux Server 7.1) using GUI Mode. I am using X11 forwarding using XMing and connecting to the server over SSH using Putty.
When I run the command "java -jar Weblogic/fmw_12.1.3.0.0_wls.jar" it shows some initial error as "Checking monitor: Must be configured to display 256 bit color" Failed. I ignored the installation and went ahead.
But when the GUI opened the characters are scrambled and unreadable as the image attached next
Weblogic GUI - Not readable
I tried installation using both JDK 1.7 and 1.8 and had the similar results
I seems to be issue with some character encoding but was not able to figure out. I checked the Unix $LANG environment variable and it is set properly to "en_US.UTF-8" I checked Putty if there is any option related to encoding. And found one under Window > Translation > Remote Character Set and the value is set as UTF-8
I checked by copying text inside the text box beside the Browse equivalent one, and pasted it in notepad. The text is valid in notepad
I found the solution to the issue with the help of the Unix team.
I checked for other GUI installer like IBM Unica Campaign. I got the similar issue. So I was sure it has nothing to do with the installer. Either something with the SSH pipe or something in the server. I shared the details of one server where it worked fine earlier and asked Unix team to compare the packages.
Unix Admin team found that the issue might be due to the font lyx-fonts which didn't exist in the server where it was working fine. The font was removed by Unix admin team. After that the installer was showing correct string.
I had the same problem. However, if you install all prerequisite packages (see the requirements guide of Oracle Fusion Middleware 12c) for Linux then the problem disappears. Specifically you must install redhat-lsb-4.1-27.0.1.el7 for x86_64 (Redhat or OEL 7). This installs the lyx-fonts again, but also some stuff that makes your X-Windows display ok again.
Also I had the same issue. I solved it. I just install the package "xorg-x11-fonts-Type1"
I had to recently re-install OS X on my MBP and am in the process of re-installing all of my apps. One app that worked just fine in the past, but is now giving me errors is Oracle SQL Developer and I can't for the life of me figure out what I am missing.
Here's what I have tried:
Downloaded and installed SQL Developer on my machine.
Downloaded the Instant Client related files - http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html (I installed all of the 64 bit related stuff on this page - Im on a 64 bit machine), combined it into one folder and moved it my /usr folder using this guide: installing Oracle Instantclient on Mac OS/X without setting environment variables?
I also installed this the JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html
I also set up my TNSNames.ora file and copied it to my /etc folder (This is required on a mac)
Here's my problem - If I attempt to connect to my Oracle instance using the above, it throws this error:
An error was encountered performing the requested operation:
no ocijdbc11 in java.library.path
Vendor code 0
This occurs whether I use basic or the TNS connection type.
So my question to my fellow developers is - Am I missing something in terms of the install above? I have tried googling for that particular error message and not found anything useful. At first glance, it seems like SQL Developer is looking for some file.
Thanks in advance for your answers!
EDIT - The version of SQL Developer that I am trying to install is 3.1.07 and I am trying to connect to an 11G instance.
Go to Tools > Preferences > Database > Advanced, and make sure Use OCI/Thick driver is un-checked.
Once done, try creating a connection and test. I also think you might be running an in-compatible version of Java in your newly installed OS X, so try installing JDK 1.6.0_11 or above, if the solution doesn't work.
I have a program using odac(11.2) and oracle client 11.2. Now I want to deploy it to a box which is already installed a oracle 9i client.
Some existing programs is depend on it so I fear the new client will harm the existing program. Is this true? And how can I keep them all working properly?
Normally you install oracle products in a dedicates ORACLE_HOME in different directories (like /ora/app/oracle/product/9.2 and /ora/app/oracle/product/11.2). Then you set the $ORACLE_HOME and $PATH variables to that directory which will be working fine.
We use many different client versions from 8.1.6 to 11.2 on one machine. Every application has an own shell script setting up the correct environment prior to starting.
I'm trying to get Toad 9.7 to work on a new installation of Windows 7 x64. I installed a 64-bit Oracle instant client (manually by extracting to a folder and setting some environment variables). Things seemed to be OK (SQL Developer worked, SQL*Plus worked), but Toad was having problems.
I then read that Toad needs a 32-bit client, so I "installed" that using the same method, but it still wasn't happy. It kept giving me an error saying that I didn't have an Oracle client installed. I tried many different things like setting different environment variables (LD_LIBRARY_PATH, ORACLE_HOME etc.) and nothing worked. I then scrapped the manual method and downloaded the full Oracle client but only checked the "instant client" option when I ran the setup, and that finally worked. Toad recognized the client and I got rid of those env. variables I had set, and only had TNS_ADMIN set, in addition to the oracle home folder in the system path.
There was still one problem. Toad didn't know the version of my oracle client and kept giving me error messages saying that the oracle home was invalid. I could ignore those messages and everything seemed to work, but I just didn't like the fact that the home it was using was coloured red and I had to tell it to ignore those error messages.
So after a little more digging and some guesses on my part, I got a kludge-ey method to work. I copied the oci.dll file into the bin folder under the oracle home, and I also made another copy of that file in the bin folder and called it oraclient11.dll. The combination of those two things got Toad to stop complaining.
However, that doesn't seem like a very clean method, so I was wondering if anyone else has come across this issue and used a cleaner method to get it working.
After you install the 32-bit client by extracting the files, set the PATH to point to the 32-bit directory. And make sure that the 32-bit directory is in the path BEFORE the 64-bit directories.
I think that's what worked for me but I'm not 100% positive.