Я использую 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 без указания хоста?