Sử dụng tnsnames.ora trong Nhà phát triển SQL của Oracle


137

Tôi đang đánh giá Oracle SQL Developer .

My tnsnames.orađược điền và tnspingmột kết nối được xác định trong tnsnames.orahoạt động tốt. Tuy nhiên, SQL Developer không hiển thị bất kỳ kết nối nào.

Nhà phát triển Oracle SQL tăng vọt đề cập rằng, nếu

bạn có phần mềm máy khách Oracle và tệp tnsnames.ora đã được cài đặt trên máy của bạn, Oracle SQL Developer sẽ tự động điền vào trình điều hướng Kết nối từ các tên dịch vụ mạng được xác định trong tnsnames.ora.

Tôi cũng đã cố gắng đặt TNS_ADMINbiến môi trường của mình , nhưng sau khi khởi động lại SQL Developer vẫn không có kết nối nào được hiển thị.

Có ý kiến ​​gì không?
Bất cứ ai cũng làm việc thành công với SQL Developer và tnsnames.ora?


Tôi đã tải xuống và cài đặt Oracle SQL Developer để kết nối với cơ sở dữ liệu Oracle 11g hiện có. Nhưng có vẻ như tôi cũng sẽ cần phải tải xuống và cài đặt phần mềm máy khách Oracle, tôi nên sử dụng phần mềm nào nếu tôi dùng Windows 10?
VoodooChild

Câu trả lời:


219
  • Trong trình duyệt SQLDeveloperTools --> Preferences , như trong hình bên dưới.

    Tùy chọn truy cập SQLDeveloper

  • Trong tùy chọn Tùy chọn expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directorynơi trình bày tnsnames.ora .
  • Sau đó bấm vào Ok , như thể hiện trong sơ đồ dưới đây.
    tnsnames.ora có sẵn tạiDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    SQLDeveloper cập nhật thư mục tnsnames

Bây giờ bạn có thể kết nối thông qua các tùy chọn TNSnames .


4
mọi người, chỉ cần một bản cập nhật nhỏ trên bài đăng cũ (nhưng khá hữu ích này): đừng cố sử dụng một liên kết tượng trưng trên Windows. Nhà phát triển SQL dường như không biết cách sử dụng nó. Làm tôi mất một thời gian. Hy vọng nó sẽ cứu bạn.
Hellday5432

@ Hellday5432 - Đúng vậy. SQL Dev chạy trên Java mà không hiểu các phím tắt; ví dụ: khi mở tệp chúng ta không thể sử dụng phím tắt để chuyển đến thư mục.
Kent Pawar

5
Phím tắt Windows! = Liên kết tượng trưng. howtogeek.com/howto/16226/ Mạnh
Matt Lachman

Tôi đã tải xuống và cài đặt Oracle SQL Developer để kết nối với cơ sở dữ liệu Oracle 11g hiện có. Nhưng có vẻ như tôi cũng sẽ cần phải tải xuống và cài đặt phần mềm máy khách Oracle, tôi nên sử dụng phần mềm nào nếu tôi dùng Windows 10?
VoodooChild

Tôi không thấy tùy chọn thư mục Tnsnanes trong phiên bản SQL Developer 1.5.5 của mình.
Amit Chaurasia

24

Câu trả lời tuyệt vời này cho một câu hỏi tương tự (mà tôi không thể tìm thấy trước đây, thật không may) đã giúp tôi giải quyết vấn đề.

Sao chép nội dung từ câu trả lời được tham chiếu:

Nhà phát triển SQL sẽ tìm ở vị trí sau theo thứ tự này cho tệp tnsnames.ora

$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
TNS_ADMIN tra cứu khóa trong registry
/etc/tnsnames.ora (không cửa sổ)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME

Nếu tệp tnsnames.ora của bạn không được nhận dạng, hãy sử dụng quy trình sau:

Xác định một biến môi trường có tên TNS_ADMIN để trỏ đến thư mục chứa tệp tnsnames.ora của bạn.

Trong Windows, điều này được thực hiện bằng cách điều hướng đến Bảng điều khiển> Hệ thống> Cài đặt hệ thống nâng cao> Biến môi trường ...
Trong Linux, xác định biến TNS_ADMIN trong tệp .profile trong thư mục chính của bạn.

Xác nhận hệ điều hành đang nhận ra biến môi trường này

Từ dòng lệnh Windows: echo% TNS_ADMIN%

Từ linux: echo $ TNS_ADMIN

Khởi động lại SQL Developer Bây giờ trong SQL Developer, nhấp chuột phải vào Kết nối và chọn Kết nối mới .... Chọn TNS làm loại kết nối trong hộp thả xuống. Các mục của bạn từ tnsnames.ora sẽ hiển thị ở đây.


3
Tôi biết đã được một lúc, nhưng bạn có thể rút ra phần có liên quan của câu trả lời ở đây không? Chỉ trong trường hợp câu trả lời (hoặc thậm chí câu hỏi) từng bị xóa.
Dennis Meng

1
về cơ bản, nó làm tròn để đặt biến hệ thống TNS_ADMIN (vì SQL Developer tìm kiếm ở đó ~ trước) và sau khi khởi động lại SQL Developer, chọn Kết nối mới và trong danh sách thả xuống Loại kết nối, thay vì Cơ bản, hãy chọn TNS - vì vậy, tnsnames được nhìn thấy, nhưng bạn không nên mong đợi các kết nối sẽ được tự động điền (đó là trường hợp của tôi)
hello_earth

Tìm kiếm đã đưa tôi đến với cô ấy, vì vậy đã cập nhật câu trả lời vì đã có tham chiếu đến tác giả @DennisMeng
TheGameiswar

7

Tôi có cùng một vấn đề, tnsnames.orahoạt động tốt cho tất cả các công cụ khác nhưng SQL Developer sẽ không sử dụng nó. Tôi đã thử tất cả các đề xuất trên web mà tôi có thể tìm thấy, bao gồm các giải pháp trên liên kết được cung cấp ở đây.
Không có gì làm việc.

Nó chỉ ra rằng cơ sở dữ liệu được bộ nhớ đệm bản sao lưu của tnsnames.oranhư tnsnames.ora.bk2, tnsnames09042811AM4501.bak, tnsnames.ora.bkvv Những file không thể đọc được bởi người dùng trung bình.

Tôi nghi ngờ sqldeveloper là mẫu phù hợp với tên và nó đã cố đọc một trong những bản sao lưu này và không thể. Vì vậy, nó chỉ thất bại một cách duyên dáng và không hiển thị gì trong danh sách thả xuống.

Giải pháp là làm cho tất cả các tệp có thể đọc hoặc xóa hoặc di chuyển các bản sao lưu ra khỏi thư mục Quản trị viên.


Đó có lẽ chính xác là những gì bạn đang thấy. Cả SQL Plus và SQL Developer đều nhìn thấy / phân tích / đọc tnsnames - vì vậy nếu một lỗi xấu, điều đó có thể xếp tầng và gây ra sự cố của bạn.
thatjeffsmith


0

Trên các phiên bản mới hơn của macOS, người ta cũng phải thiết lập java.library.path. Cách dễ nhất / an toàn nhất để làm điều đó [1] là tạo ~/.sqldeveloper/<version>/sqldeveloper.conftệp và điền vào tệp như sau:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.