database - لا تظهر أسماء Oracle TNS عند إضافة اتصال جديد إلى SQL Developer




oracle-sqldeveloper tnsnames (5)

أحاول الاتصال بقاعدة بيانات oracle مع SQL Developer.

لقد قمت بتثبيت برامج تشغيل oracle .Net ووضع الملف tnsnames.ora في
C:\Oracle\product\11.1.0\client_1\Network\Admin

أنا أستخدم التنسيق التالي في tnsnames.ora:

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

في SQL Developer ، عندما أحاول إنشاء اتصال جديد ، لا تظهر أسماء TNS كخيارات.

هل هناك شيء أفتقده؟


افتح SQL المطور. انتقل إلى أدوات -> تفضيلات -> قواعد البيانات -> متقدم ثم قم بتعيين الدليل Tnsnames بشكل صريح

تم إعداد TNSNAMES الخاص بي بشكل صحيح وتمكّنت من الاتصال بـ Toad و SQL * Plus إلخ. ولكنني بحاجة إلى القيام بذلك للحصول على SQL Developer للعمل. ربما كان مشكلة وين 7 كما كان لتثبيت الألم أيضا.


الخطوات المذكورة من قبل جايسون جيدة جدا ويجب أن تعمل. هناك تطور قليل مع SQL المطور ، رغم ذلك. فإنه وتخزين مواصفات الاتصال (المضيف أو اسم الخدمة أو المنفذ) في المرة الأولى التي يقرأ الملف tnsnames.ora. ثم ، فإنه لا تبطل المواصفات عند إزالة الإدخال الأصلي من الملف tnsname.ora. يستمر التخزين المؤقت حتى بعد إنهاء SQL Developer وإعادة تشغيله. هذه ليست طريقة غير منطقية في التعامل مع الوضع. حتى إذا كان ملف tnsnames.ora غير متوفر مؤقتًا ، فلا يزال بإمكان مطور SQL إجراء الاتصال طالما أن المواصفات الأصلية مازالت صحيحة. المشكلة تأتي مع تطورها المقبل. يعامل SQL المطور أسماء الخدمة في الملف tnsnames.ora كقيم حساسة لحالة الأحرف عند حل الاتصال. لذا إذا كنت تستخدم اسم إدخال ABCD.world في الملف وقمت باستبداله بإدخال جديد يسمى abcd.world ، فلن يقوم SQL Developer بتحديث مواصفات الاتصال الخاصة به لـ ABCD.world - سيتعامل مع abcd.world على أنه مختلف اتصال تماما. لماذا لا أشعر بالدهشة من أن منتج أوراكل سوف يعامل كمحتوى لحساسية محتويات ملف بتنسيق oracle الذي تم تطويره بشكل واضح وغير حساس لحالة الأحرف؟


في Tools --> Preferences تصفح SQLDeveloper Tools --> Preferences ، كما هو موضح في الصورة أدناه.



في خيارات التفضيلات ، قم expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory حيث يوجد tnsnames.ora .
ثم اضغط على موافق .
كما هو موضح في الرسم البياني أدناه.

أنهيت!

الآن يمكنك الاتصال عبر خيارات TNSnames .


في Sql Developer ، navidate إلى Tools-> preferences-> Datababae-> advanced-> Set Tnsname directory to the directory contains tnsnames.ora


يمكنك دائمًا معرفة موقع ملف tnsnames.ora المستخدم من خلال تشغيل TNSPING للتحقق من الاتصال (9i أو أحدث):

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

في بعض الأحيان ، تكون المشكلة مع الإدخال الذي أدخلته في tnsnames.ora ، وليس أن النظام لا يمكنه العثور عليه. ومع ذلك ، أوافق على أن تعيين متغير بيئة tns_admin هو شيء جيد ، لأنه يتجنب المشكلات التي لا مفر منها التي تنشأ مع تحديد بالضبط ملف tnsnames الذي يتم استخدامه في الأنظمة ذات المنازل oracle المتعددة.







tns