CLSQL connect Oracle-Datenbank
Frage
Ich tue etwas Übung mit clsql
. Ich möchte, dass meine Oracle-Server daher meine Verbindungsfunktion ist verbinden;
(connect '("192.168.2.3" "xe" "username" "password") :database-type :oracle)
wenn ich die Rückkehr getroffen, die folgende Fehlermeldung angezeigt wird.
Couldn't load foreign libraries "libclntsh", "oci". (searched *FOREIGN-LIBRARY-SEARCH-PATHS*)
[Condition of type SIMPLE-ERROR]
Ich habe bereits installiert oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
und definieren export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib
Also, was soll ich sonst noch tun, um die Server zu verbinden?
Keine korrekte Lösung
Andere Tipps
Eine Sache, die mich stellt sich mit dynamisch an die Oracle-Libs Verknüpfung (in C / C ++, das ist), ist die Tatsache, dass die libclntsh.so gemeinsam genutztes Objekt mit der Version kommt nach die so Namen . So haben Sie einen Soft-Link im selben Verzeichnis, um sicherzustellen, dass die weichen Kettungsname libclntsh.so
nur müssen erstellen sind Ich war mit Orakel spielen in letzter Zeit und fand heraus, dass alles, was Sie brauchen, ist Pfad zu libclntsh
in /etc/ld.conf.d/oracle.conf
setzen
Mein Setup wurde nach (RedHat, CentOS - als root): von Oracle heruntergeladen
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
install via rpm -ivh oracle*.rpm
Datei erstellen /etc/ld.so.conf.d/oracle.conf
:
/usr/lib/oracle/12.1/client64/lib
dann ausführen ldconfig
Jetzt als clsql-oracle
ist nicht in quicklisp
, ich heruntergeladen und extrahiert clsql-6.6.2
, dann
(require "asdf")
(push #P"/opt/jeff/clsql-6.6.2/" asdf:*central-registry*)
(asdf:load-system :clsql-oracle)
(defparameter *some-db* (connect '("127.0.0.1:1521/db1" "SOME_USER_RO" "*******") :database-type :oracle))
und voila, es funktioniert