Я использую Oracle JDeveloper 11.1.1.4.0 и могу создавать подключения к базе данных (с типом Oracle (JDBC)
) с помощью драйвера thin
без каких-либо проблем, пока я указываю хост.
Например, я могу подключиться к локально работающей базе данных Oracle XE, указав:
Driver: thin
Host Name: localhost
JDBC Port: 1521
Service Name: XE
Для подключения к удаленным базам данных я использую TNS, и мой файл tnsnames.ora
настроен, как показано ниже, где MYDATABASE.EXAMPLE.COM
— это идентификатор службы Oracle, который я хочу использовать.
MYDATABASE.EXAMPLE.COM=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=testdb.example.com)
(PORT=1234)
)
(CONNECT_DATA=
(SERVICE_NAME=MYDATABASE.example.com)
)
)
Соединения со службой MYDATABASE.EXAMPLE.COM
работают с SQL Developer, SQL Plus, TNSPING и т. д. с этого компьютера, но я не могу найти способ указать это в соединении с базой данных JDeveloper без необходимости указывать хост.
Причина, по которой я не хочу указывать хост, та же самая, по которой мы в первую очередь используем TNS: хост testdb.example.com
со временем изменится, а идентификатор службы MYDATABASE.EXAMPLE.COM
TNS — нет.
Если я укажу хост testdb.example.com
вместе с правильным псевдонимом TNS, соединение будет работать. Если я укажу неправильный идентификатор, произойдет сбой - он определенно знает о содержимом моего файла tnsnames.ora.
Сообщения типа этого похоже, предполагается, что если JDeveloper знает о TNS_ADMIN, он будет использовать tnsnames.ora
, но даже использование «Введите пользовательский URL-адрес JDBC» не работает, используя строку вроде:
jdbc:oracle:thin:MYDATABASE.EXAMPLE.COM
Он по-прежнему выдает ошибку «Пожалуйста, введите допустимое значение для имени хоста».
Кто-нибудь знает, как создать соединение с базой данных в JDeveloper без указания хоста?