Как получать цепь связи JDBC Базы данных Oracle?

Чтобы присоединяться в базу данных посредством требуется особенно построенный унифицированный указатель ресурса (универсальный Локатор Ресурсов). У меня есть база данных Oracle Express Edition конфигурировавшая локально.

Как я могу способствовать тому, чтобы база данных произвела унифицированный указатель ресурса связи посредством консультации?

2
задан 23.12.2015, 20:32
3 ответа

Я знаю 4 формата, предполагая, что используется драйвер Oracle Thin, возможно использовать следующую консультацию:

SELECT
  USER
  ||'/******@'
  || sys_context('userenv','db_name') as simpleconnection
  ,'jdbc:oracle:thin:'
      ||USER
      ||'/******@'
      || sys_context('userenv', 'server_host') --host
      || ':'
      || sys_context('USERENV', 'SID') --port
      || ':'
      || sys_context('userenv','db_name') AS "Oracle Ocho" --SID
  ,'jdbc:oracle:thin:'
      ||USER
      ||'/******@'
      ||sys_context('userenv', 'server_host') --host
      ||':'
      ||sys_context('USERENV', 'SID') --port
      ||'/'
      ||  sys_context('userenv','service_name') AS "Forma Host"
  ,'jdbc:oracle:thin:'
      ||USER
      ||'/******@'
      ||sys_context('userenv', 'ip_address')  --ip
      ||':'
      ||sys_context('USERENV', 'SID') --port
      ||'/'
      ||  sys_context('userenv','service_name') AS "Forma IP"
  ,'jdbc:oracle:thin:'
      ||USER
      ||'/******@(description=(address=(host='
      ||sys_context('userenv', 'server_host')    --host
      ||')(protocol='
      ||sys_context('userenv', 'network_protocol')  --protocol
      ||')(port='
      ||sys_context('USERENV', 'SID')  --port
      ||'))(connect_data=(service_name='
      ||  sys_context('userenv','service_name')  --service name
      ||')(server='
      ||sys_context('userenv','host')  --name of the machine
      ||')))' AS "Forma TNS"
FROM dual d;
-1
ответ дан 05.09.2019, 03:00
  • 1
    Идти и # 243; nicamente, чтобы выполнять этот query с Java, нужно присоединять сначала в базу данных. –  23.12.2015, 00:49
  • 2
    Прочитай хорошо вопрос, идея состоит в том, чтобы производить url conexi и # 243; n, что используется в java используя базу данных. – Ruslan López 23.12.2015, 20:31

Как таковая BD не производит тебе connenction string, из-за остальных - говорить, что это работа, которой не требует BD ни для чего.

Формат для thin client

jdbc:oracle:thin:@<HOST>:<PORT>:<SID>

драйвер ямс: oracle.jdbc.driver. OracleDriver

Также ты можешь посылать это за OCI

Oracle OCI 8i

jdbc:oracle:oci8:@<SID>

** драйвер ямс: ** oracle.jdbc.driver. OracleDriver

Oracle OCI 9i

jdbc:oracle:oci:@<SID>

драйвер ямс: oracle.jdbc.driver. OracleDriver

ОБЪЕДИНЕННЫЙ РАБОЧИЙ СОЮЗ

Чтобы использовать их это просто, это классический пример связи

String connString="jdbc:oracle:thin:@prodHost:1521:ORCL";

OracleDataSource ods = new OracleDataSource();
ods.setURL(connString);
ods.setUser("scott");
ods.setPassword("tiger");
Connection conn = ods.getConnection();

И это другой классический пример используя синтаксис TNS Ямс. МОЛИСЬ

String connString = "jdbc:oracle:thin:@(description=(address_list=
   (address=(protocol=tcp)(port=1521)(host=prodHost)))
(connect_data=(INSTANCE_NAME=ORCL)))";
OracleDataSource ods = new OracleDataSource();

ods.setURL(connString);
ods.setUser("scott");
ods.setPassword("tiger");
Connection conn = ods.getConnection();

Здесь у тебя есть full документация

JDBC + Oracle

4
ответ дан 24.11.2019, 15:03

докуда я знаю не возможно производить цепь связи с той же базы данных, однако очень простая создания, кроме того существуют множества примеров в Интернете:

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;

смоги заменять с 'XE', если ты используешь версию XE oracle.

0
ответ дан 24.11.2019, 15:03