سؤال

أحاول الاتصال بقاعدة بيانات أوراكل باستخدام SQL Developer.

لقد قمت بتثبيت برامج تشغيل .Net oracle وقمت بوضع ملف 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.ora

  1. $HOME/.tnsnames.ora
  2. $TNS_ADMIN/tnsnames.ora
  3. مفتاح البحث TNS_ADMIN في التسجيل
  4. /etc/tnsnames.ora (غير Windows)
  5. $ORACLE_HOME/network/admin/tnsnames.ora
  6. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME_KEY
  7. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME

لمعرفة أي مطور SQL يستخدم، قم بإصدار الأمر show tns في ورقة العمل

إذا لم يتم التعرف على ملف tnsnames.ora الخاص بك، فاتبع الإجراء التالي:

  1. تعريف متغير بيئي يسمى TNS_ADMIN للإشارة إلى المجلد الذي يحتوي على ملف tnsnames.ora الخاص بك.

    في نظام التشغيل Windows، يتم ذلك عن طريق الانتقال إلى لوحة التحكم > نظام > إعدادات النظام المتقدمة > متغيرات البيئة...

    في Linux، حدد TNS_ADMIN متغير في ملف .profile في الدليل الرئيسي الخاص بك.

  2. تأكد من أن نظام التشغيل يتعرف على هذا المتغير البيئي

    من سطر أوامر Windows:صدى %TNS_ADMIN%

    من لينكس:صدى $TNS_ADMIN

  3. أعد تشغيل مطور SQL

  4. الآن في SQL Developer انقر بزر الماوس الأيمن على روابط وحدد اتصال جديد....يختار تي ان اس كنوع الاتصال في المربع المنسدل.يجب الآن عرض إدخالاتك من tnsnames.ora هنا.

نصائح أخرى

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

وكان من المقرر بلدي TNSNAMES بشكل صحيح وأنا لا يمكن الاتصال العلجوم، SQL * زائد الخ ولكن كنت بحاجة للقيام بذلك للحصول على SQL المطور للعمل. وربما كان قضية وين 7 كما كان الألم لتثبيت أيضا.

ويمكنك أن تجد دائما من موقع ملف 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 يستخدم ملف في النظم مع المنازل أوراكل متعددة.

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

enter image description here

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

enter image description here

أنهيت!

الآن يمكنك الاتصال عبر أسماء TNS خيارات.

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

في SQL المطور، انتقل إلى أدوات> تفضيلات> Database-> متقدمة-> مجموعة Tnsnames الدليل إلى الدليل الذي يحتوي TNSNAMES.ORA

وأي من التغييرات المذكورة أعلاه أي فرق في حالتي. أنا يمكن تشغيل TNS_PING في إطار الأوامر ولكن SQL المطور لا يمكن معرفة أين كان TNSNAMES.ORA.

وهذه المسألة في حالتي كانت (ويندوز 7 - المؤسسة - 64 بت) أن المثبت أوراكل أشار الاختصار القائمة ابدأ لإصدار خاطئ من SQL المطور. ويبدو أن هناك ثلاث حالات المطور SQL التي تصاحب المثبت. هو واحد في٪ ORACLE_HOME٪ \ client_1 \ sqldeveloper \ وهما في٪ ORACLE_HOME٪ \ client_1 \ sqldeveloper \ بن \.

والمثبت تثبيت اختصار قائمة ابدأ التي أشارت في نسخة في الدليل بن ببساطة لا تعمل. فإنه طلب كلمة مرور في كل مرة بدأت المطور SQL، لا أتذكر الخيارات كنت قد قدمت وعرض قائمة فارغة عندما اخترت TNS كآلية اتصال. كما لايوجد مجال TNS دليل في إعدادات قاعدة بيانات متقدمة المشار إليها في وظائف أخرى.

وأنا قذف الاختصار بدء القديم وتثبيت اختصار ل٪ ORACLE_HOME٪ \ client_1 \ sqldeveloper \ sqldeveloper.exe. ثابت أن التغيير المشكلة في حالتي.

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