Question

Je suis en train de faire un peu de pratique avec clsql. Je veux connecter mon serveur Oracle donc ma fonction de connexion est;

(connect '("192.168.2.3" "xe" "username" "password") :database-type :oracle)

quand je frappe le retour, le message d'erreur suivant apparaît.

Couldn't load foreign libraries "libclntsh", "oci". (searched *FOREIGN-LIBRARY-SEARCH-PATHS*) [Condition of type SIMPLE-ERROR]

Je l'ai déjà installé oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm

et définir export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib

Alors, que dois-je faire pour connecter le serveur?

Pas de solution correcte

Autres conseils

Une chose qui me fait trébucher avec un lien vers les dynamiques libs Oracle (en C / C ++ qui est), est le fait que l'objet est livré avec libclntsh.so partagé la version après si le nom . Donc, vous devrez peut-être créer un lien souple dans le même répertoire, en veillant à ce que le nom du lien souple est juste libclntsh.so

Je joue avec oracle ces derniers temps et a découvert que tout ce que vous avez besoin est de mettre chemin à libclntsh dans /etc/ld.conf.d/oracle.conf

Ma configuration est à la suite (RedHat, CentOS - en tant que root): téléchargé à partir d'Oracle

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

Créer un fichier /etc/ld.so.conf.d/oracle.conf:

/usr/lib/oracle/12.1/client64/lib

puis exécutez ldconfig

Maintenant que clsql-oracle est pas quicklisp, je téléchargé et clsql-6.6.2 sont extraits, puis

(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))

et le tour est joué, il fonctionne

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top