У меня есть Java-приложение, которое использует JDBC (через JPA), которое подключалось к базе данных разработки с использованием имени хоста, порта и Oracle SID, например:
JDBC: оракул: тонкий: @ oracle.hostserver1.mydomain.ca: 1521: XYZ
XYZ был SID Oracle. Теперь мне нужно подключиться к другой базе данных Oracle, которая не использует SID, но вместо этого использует Oracle «Service Name».
Я пробовал это, но это не работает:
JDBC: оракул: тонкий: @ oracle.hostserver2.mydomain.ca: 1522: ABCD
ABCD - это имя службы другой базы данных.
Что я делаю не так?
источник
jdbc:oracle:thin:USER/PWD@//my.ip.address:1521/SERVICENAME
илиjdbc:oracle:thin:@//my.ip.address.1521/SERVICENAME
с именем пользователя и паролем в качестве аргументовjdbc.getConnection()
. Все еще озадачивает.Таким образом, есть два простых способа сделать эту работу. Решение, опубликованное Bert F, отлично работает, если вам не нужно предоставлять какие-либо другие специфические для Oracle свойства соединения. Формат для этого:
Однако, если вам нужно предоставить другие специфичные для Oracle свойства соединения, вам нужно использовать длинный стиль TNSNAMES. Мне пришлось сделать это недавно, чтобы включить общие подключения Oracle (где сервер выполняет свой пул соединений). Формат TNS:
Если вы знакомы с форматом файлов Oracle TNSNAMES, это должно показаться вам знакомым. Если нет, то просто Google это для деталей.
источник
Вы также можете указать имя TNS в URL JDBC, как показано ниже
источник
Попробуй это:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD
Изменить: для комментария ниже это действительно правильно:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(обратите внимание на//
)Вот ссылка на полезную статью
источник
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
.oracle.hostserver2.mydomain.ca
?Это обсуждение помогло мне решить проблему, с которой я боролся в течение нескольких дней. Я просматривал весь интернет, пока не нашел ответ Джима Тафа 18 мая 11 года в 15:17. С этим ответом я смог соединиться. Теперь я хочу вернуть и помочь другим с полным примером. Поехали:
источник
В случае, если вы используете Eclipse для подключения оракула без SID. Есть два драйвера для выбора, т.е. тонкий драйвер Oracle, а другой - другой драйвер. Выберите другие драйверы и введите имя службы в столбце базы данных. Теперь вы можете подключиться напрямую, используя имя сервиса без SID.
источник
При использовании
dag
вместоthin
, синтаксис ниже, указывающий на имя службы, работал для меня. Этиjdbc:thin
решения выше не работают.источник
Это должно работать:
jdbc:oracle:thin//hostname:Port/ServiceName=SERVICE_NAME
источник