سؤال

نحن نستخدم system.data.oracleclient ودروس قاعدة مجردة DBConnection، DBCommand (إلخ) للاتصال بأوراكل.

الاتصال يعمل بشكل جيد في مراحل التطوير الخاصة بنا. أثناء التدريج الذي نواجه الخطأ ORA-12514: TNS: لا يعرف المستمع حاليا الخدمة المطلوبة في ربط واصف.

كان هدفنا هو الاتصال بدون إدخال TNS، وتوفير جميع المعلومات ذات الصلة في سلسلة الاتصال (www.connectionstrings.com/oracle#19)

يمكنني تأكيد أن SQL Plus سيتصل بمخطط المرغوب من خادم التدريج (المستمع هو الاستماع). إدخال TNS مدمن مخدرات في SQLPLUS يطابق كل بيانات اعتماد سلسلة الاستعلام التي يتم بناؤها.

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;

هل هناك تثبيت على الخادم فاتنا؟ شيء يمكننا القرص؟

أي مساعدة موضع تقدير.

هل كانت مفيدة؟

المحلول

SID ليس اسم خدمة. اسم الخدمة عادة ما يكون اسم قاعدة بيانات مؤهلة بالكامل، في حين أن SID هو معرف قصير.

قد يكون اسم الخدمة dbname.company.com بينما يكون SID الخاص بك DBNAME. يمكن أن يكون للمثيل بالفعل العديد من أسماء الخدمات المرتبطة به، ولكن سيد واحد فقط.

قم بتغيير Service_Name إلى SID في سلسلة الاتصال الخاصة بك، أو حدد اسم الخدمة الخاص بك لخيار Service_Name.

نصائح أخرى

إذا كنت أتذكر بشكل صحيح، كان لدي نفس المشكلة حتى تحولت إلى استخدام مقدمي أوراكل والأوراج والأوراجيندباسماند. لا يقوم الجنراء بإنشاء مثيل دائما المزود الصحيح في جميع الحالات.

إذا كان عميل Oracle في الإصدار 10+، فيمكنك أيضا استخدامه ezconnect. (و التي تعني سهلة ربط طريقة تسمية). ستظل سلسلة الاتصال الخاصة بك بعد ذلك:

"Data Source=MyHost:MyPort/MyServiceName;User ID=myUserName;Password=myPassword"

مدموج مع Oracle Instant Client., ، يجعل استخدام أوراكل يشعر المهنية تقريبا! ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top