Дополнительно
Java JDBC - Как подключиться к Oracle, используя имя службы вместо SID
У меня есть Java-приложение, использующее JDBC (через JPA), которое подключалось к базе данных разработки, используя имя хоста, порт и Oracle SID, следующим образом:
jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ
XYZ был SID Oracle. Теперь мне нужно подключиться к другой базе данных Oracle, которая не использует SID, а вместо него использует Oracle "Service Name".
Я пробовал это, но это не работает:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD
ABCD - это имя службы другой базы данных.
Что я делаю неправильно?
240
8
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA
Так что я бы попробовал:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
Также, согласно ответу Роберта Грейтхауса, вы можете указать имя TNS в URL JDBC, как показано ниже:
Таким образом, есть два простых способа сделать эту работу. Решение опубликовано Берт F работает нормально, если вы не'т придется поставить любые другие специальные, специфичные для Oracle свойств соединения. Формат это:
в
Однако, если вам нужно поставить другие, специфичные для Oracle свойства соединения, то вам нужно использовать длинный тип файла tnsnames. Я сделала это недавно, чтобы включить Оракул общий подключения (где сервер делает свой собственный пул соединений). Формат TNS является:
Если вы're с Оракулом файл tnsnames формате, то это должно быть тебе хорошо знакомо. Если нет, то просто погугли что это за детали.
Вы также можете указать имя TNS в URL JDBC, как показано ниже
Попробуйте это:
jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522/ABCD
Edit: согласно комментарию ниже, это действительно правильно:
jdbc:oracle:thin:@//oracle.hostserver2.mydomain.ca:1522/ABCD
(обратите внимание на//
)Вот ссылка на полезную статью
Эта дискуссия помогла мне решить проблему, я боролся с в течение нескольких дней. Я посмотрел вокруг в интернете, пока не нашел ответ Джим жестко на 18 мая '11 в 15:17. С этим ответом я смог подключиться. Теперь я хочу поделиться знаниями и помочь другим в пример. Здесь идет:
В случае, если вы используете Eclipse для подключения Oracle без Сида. Существует два драйверы для выбора, т. е., тонких драйвер Oracle и другие-это другие драйвера. Выбрать другой драйверы и введите имя в столбце базы данных. Теперь вы можете подключить непосредственно через имя сервиса без Сида.
При использовании
Даг
вместотонкий
, синтаксис ниже указываю имя службы работал для меня. Выше решения `в JDBC: "тонких" не работает.Это должно работать:
с JDBC:Oracle:на тонких//имя_хоста:порт/имя=ИМЯ_СЛУЖБЫ