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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top