4

私はでいくつかの練習をしてい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

では、サーバーに接続するには他に何をすればよいですか?

4

2 に答える 2

2

libclntsh私は最近オラクルで遊んでいて、必要なのはパスをに入れるだけであることがわかりました/etc/ld.conf.d/oracle.conf

私のセットアップは次のとおりでした(redhat、centos - rootとして):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))

そして出来上がり、それは動作します

于 2015-11-16T21:53:14.010 に答える
1

Oracle libs (つまり C/C++) への動的リンクでつまずくのは、libclntsh.so 共有オブジェクトがso 名の後にバージョンが付いているという事実です。そのため、ソフト リンク名が libclntsh.so になるように、同じディレクトリにソフト リンクを作成する必要がある場合があります。

于 2011-06-08T01:20:49.960 に答える