سؤال

أنا أمارس بعض الممارسة مع 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. لذا

كنت ألعب مع أوراكل مؤخرًا واكتشفت أن كل ما تحتاجه هو وضع الطريق إليه 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