Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 tnsnames.ora  [new]
neteurt
Member

Откуда:
Сообщений: 158
Установил PLSQL Developer, мне скинули файл с подключениями к БД tnsnames.ora. Как мне его подключить? Куда добавить нужно
3 май 21, 11:14    [22317726]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
Maxim Demenko
Member

Откуда: Munich, Germany
Сообщений: 954
neteurt,

По умолчанию он найдет файл в директории, на которую указывает переменная окружения TNS_ADMIN

Regards

Maxim
3 май 21, 11:37    [22317736]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
Elic
Member

Откуда:
Сообщений: 30166
Maxim Demenko
на которую указывает переменная окружения TNS_ADMIN
Которой по умолчанию нет.
3 май 21, 12:21    [22317747]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19050
автор
By default, the tnsnames.ora file is located in the ORACLE_HOME/network/admin directory. Oracle Net will check the other directories for the configuration file. For example, the order checking the tnsnames.ora file is as follows:

1. The directory specified by the TNS_ADMIN environment variable. If the file is not found in the directory specified, then it is assumed that the file does not exist.

2. If the TNS_ADMIN environment variable is not set, then Oracle Net checks the ORACLE_HOME/network/admin directory.

Note:
On Microsoft Windows, the TNS_ADMIN environment variable is used if it is set in the environment of the process. If the TNS_ADMIN environment variable is not defined in the environment, or the process is a service which does not have an environment, then Microsoft Windows scans the registry for a TNS_ADMIN parameter.
4 май 21, 11:09    [22318156]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
SeaGate
Member

Откуда: Новосибирск
Сообщений: 1701
Elic
Которой по умолчанию нет.

По умолчанию, ищется в текущей рабочей директории, а не в TNS_ADMIN.
+
C:\Users\Mikhail\work_dir>type tnsnames.ora
test = (description = (address = (protocol = tcp)(host = 127.0.0.1)(port = 1521))(connect_data = (service_name = a)))

C:\Users\Mikhail\work_dir>type %TNS_ADMIN%\tnsnames.ora
test = (description = (address = (protocol = tcp)(host = 127.0.0.1)(port = 1521))(connect_data = (service_name = b)))

C:\Users\Mikhail\work_dir>sqlplus -L tc/tc@test @show_service

SQL*Plus: Release 19.0.0.0.0 - Production on Tue May 4 10:56:21 2021
Version 19.3.0.0.0

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

Last Successful login time: Tue May 04 2021 10:54:11 +01:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0

SQL> select sys_context('userenv', 'service_name') from dual;

SYS_CONTEXT('USERENV','SERVICE_NAME')
--------------------------------------------------------------------------------
a

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0

C:\Users\Mikhail\work_dir>del tnsnames.ora

C:\Users\Mikhail\work_dir>sqlplus -L tc/tc@test @show_service

SQL*Plus: Release 19.0.0.0.0 - Production on Tue May 4 10:56:59 2021
Version 19.3.0.0.0

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

Last Successful login time: Tue May 04 2021 10:56:21 +01:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0

SQL> select sys_context('userenv', 'service_name') from dual;

SYS_CONTEXT('USERENV','SERVICE_NAME')
--------------------------------------------------------------------------------
b

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0
4 май 21, 12:58    [22318226]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
Elic
Member

Откуда:
Сообщений: 30166
SeaGate
По умолчанию, ищется в текущей рабочей директории, а не в TNS_ADMIN.
Вы, парни, можете мне это всё не рассказывать.
Просто, когда несёте "знания" в массы, явно не используйте квантор всеобщности по отношению к "раскрываемым" вами знаниям. Потому что придётся каждый раз их дезавуировать и уточнять.
4 май 21, 15:35    [22318335]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
Maxim Demenko
Member

Откуда: Munich, Germany
Сообщений: 954
Elic,

(посыпая голову пеплом) соглашусь, наиболее нейтральный вариант - отсыл к оригинальной документации (без обобщений), иначе приходися (как и прогнозировалось ) уточнять и дезавуировать

PL/SQL Developer 14.0 User’s Guide
Logon failure
The logon dialog can fail for the following reasons:
1. You do not have the Oracle Client software installed. This is a requirement for PL/SQL Developer.
Install an Oracle Client and try again.
2. You have more than one Oracle Client software installations. In this case PL/SQL Developer may
have chosen an Oracle Client that is not appropriate. Cancel the logon dialog, go to Configure >
Preferences > Oracle / Connection, select the appropriate Oracle Home from the list, restart
PL/SQL Developer and try again.
3. You are using an Oracle Instant Client but have not set all required environment variables:
• PATH – Needs to include the Instant Client directory (where oci.dll is located).
• TNS_ADMIN – Needs to point to the directory where tnsnames.ora is located.
• NLS_LANG – Defines the language, territory, and character set for the client.
Note: you can also set these parameters on the command-line or in the params.ini file, as
described in chapter 37.4.


chapter 37.4
37.4 Command-line parameters
...
instantclient
Use the instant client from the given directory. For example:
plsqldev.exe instantclient=C:\Oracle\InstantClient11g

If the directory contains a tnsnames.ora file or a network subdirectory or a network\admin subdirectory
with a tnsnames.ora file, it will implicitly be used.
tns_admin
Use the given directory as the Oracle network directory (where the tnsnames.ora file resides). For
example:
plsqldev.exe tns_admin=C:\Oracle\Network\Admin



Regards

Maxim
4 май 21, 17:37    [22318419]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
Elic
Member

Откуда:
Сообщений: 30166
Maxim Demenko
(посыпая голову пеплом)
Спасибо за признание, что профессионализм в форуме не в моде.
4 май 21, 20:30    [22318480]     Ответить | Цитировать Сообщить модератору
 Re: tnsnames.ora  [new]
Maxim Demenko
Member

Откуда: Munich, Germany
Сообщений: 954
Elic,
КМК, в этом конкретном случае дело не в профессионализмe, скорее в прагматизме, исходя из (сугубо моего) опыта - наиболее распространенный вариант установки клиента на Windows) - инстант клиент. В этом случае наиболее практичный вариант - установить переменную TNS.ADMIN. и записать туда tnsnames.ora. В 90 случаев из 100 это сработает, в 10 оставшихся возможны нюансы (которые возможно потребуют уточнений) относительно
1)full client
2)registry
3)$oracle_home/network/admin
4)tnsnames.ora (или .tnsnames.ora в в линукс ) в рабочей директории
5)command line parameter PL SQL Developer
(но это скорее не ко мне , а к умению задавать вопросы )
альтернативно - можно сразу послать в RTFM (что было бы по умолчанию правильно - но врядли бы так эффективно как простой хинт с TNS_ADMIN). Но если это не профессионально - ok, i'm not pretending by any means.

Regards

Maxim
5 май 21, 00:13    [22318561]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить