Почему мое строковое соединение sqlplus работает только с / service_name, а не с: service_name - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь подключиться к своей базе данных с использованием sqlplus, передавая службу с использованием точки с запятой, но не работает, только с косой чертой.

 [root@38324e46bdc6 bin]# sqlplus ECM/ECM@//172.18.0.5:1521:ORACLEDB.localdomain

    SQL*Plus: Release 12.1.0.2.0 Production on Fri Dec 21 16:18:50 2018

    Copyright (c) 1982, 2014, Oracle.  All rights reserved.

    ERROR:
    ORA-12154: TNS:could not resolve the connect identifier specified

Но, таким образом:

 [root@38324e46bdc6 bin]# sqlplus ECM/ECM@172.18.0.5:1521/ORACLEDB.localdomain

    SQL*Plus: Release 12.1.0.2.0 Production on Fri Dec 21 16:10:21 2018

    Copyright (c) 1982, 2014, Oracle.  All rights reserved.

    Last Successful login time: Fri Dec 21 2018 16:09:44 +00:00

    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

    SQL> 

Это мой слушатель:

 [oracle@3fa66b9377b9 /]$ lsnrctl status listener

    LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-DEC-2018 17:31:21

    Copyright (c) 1991, 2016, Oracle.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
    Start Date                18-DEC-2018 18:02:23
    Uptime                    2 days 23 hr. 28 min. 57 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/12.2.0/dbhome_1/admin/ORACLEDB/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/3fa66b9377b9/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=3fa66b9377b9)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/12.2.0/dbhome_1/admin/ORACLEDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
    Services Summary...
    Service "7d50b1bde0ed0114e053050012ac954b.localdomain" has 1 instance(s).
      Instance "ORACLEDB", status READY, has 1 handler(s) for this service...
    Service "ORACLEDB.localdomain" has 1 instance(s).
      Instance "ORACLEDB", status READY, has 1 handler(s) for this service...
    Service "ORACLEDBXDB.localdomain" has 1 instance(s).
      Instance "ORACLEDB", status READY, has 1 handler(s) for this service...
    Service "orclpdb1.localdomain" has 1 instance(s).
      Instance "ORACLEDB", status READY, has 1 handler(s) for this service...
    The command completed successfully

Проблема в том, что мне нужно использовать точку с запятой и иметь возможность подключиться следующим образом:

sqlplus ECM/ECM@//172.18.0.5:1521:ORACLEDB.localdomain

Поскольку проект анализирует XMLпозже файл и объединить как port: host: sid, и я не могу изменить метаданные для использования / sid.Кто-нибудь может помочь мне с этим, пожалуйста?

1 Ответ

0 голосов
/ 02 января 2019

Ну, я нашел проблему.В основном, jdbc-соединитель использует USER / PASSWORD @ HOST: SID и sqlplus - PASSWORD/USER@HOST/SERVICE.

Спасибо!

...