我正在做一些练习 clsql. 。我想连接我的Oracle服务器,因此我的连接功能是;

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

当我达到返回时,显示以下错误消息。

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

我已经安装了 oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm

并定义 export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib

那么,我还应该做什么来连接服务器?

没有正确的解决方案

其他提示

一件事使我与Oracle Libs(在C/C ++中)链接到动态的一件事是Libclntsh.So共享对象的事实 SO名称。因此,您可能需要在同一目录中创建一个软链接,以确保软链接名称为libclntsh.o

我最近和Oracle一起玩,发现您所需要的就是走到 libclntsh 进入 /etc/ld.conf.d/oracle.conf

我的设置正在关注(redhat,centos-作为根):从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

创建文件 /etc/ld.so.conf.d/oracle.conf:

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

然后执行 ldconfig

现在 clsql-oracle 不在 quicklisp, ,我下载并提取 clsql-6.6.2, , 然后

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

瞧,它有效

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top