Я хочу подключиться к базе данных оракула, расположенной на другом хосте, используя sqlplus. На этой странице было предложено добавить элемент в мои tnsnames для подключения к этой базе данных.
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
а затем использовать это в sqlplus
sqlplus user/pass@local_SID
Однако в моих обстоятельствах изменение локальных имен tnsname невозможно. Можно ли подключиться к удаленной базе данных, просто используя аргумент sqlplus, не меняя tnsnames? Что-то вроде
sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
database
все еще псевдоним TNS, который должен существовать вtnsnames.ora
, так что это то же самое, что Луи пытался избежать?Ответы:
Возможно, и это может зависеть от среды командной строки, которую вы используете, вам нужно заключить строку в кавычки, что-то вроде
или же
источник
Вы можете использовать Easy Connect для этого:
Чтобы включить easy connect на вашем компьютере, вам нужно добавить его
NAMES.DIRECTORY_PATH
в файл sqlnet.ora, например:Если ваш слушатель использует порт не по умолчанию, используйте
...@hostname.network:port/...
.На самом деле кажется, что вы должны указать имя службы, а не SID; они могут быть одинаковыми, но если нет, вам нужно получить их с сервера.
источник
Создайте копию файла tnsnames.ora в каталоге, в который вы можете записать, измените файл соответствующим образом, затем установите переменную среды TNS_ADMIN в расположение этого каталога.
например:
источник
В системе Unix / Linux вы можете использовать файлы конфигурации уровня пользователя для переопределения записей уровня системы.
Файлы конфигурации системного уровня можно найти в каталоге
$TNS_ADMIN
. Если переменнаяTNS_ADMIN
не установлена, то они ищутся в каталоге$ORACLE_HOME/network/admin
.Файлы конфигурации уровня пользователя не заменяют файлы конфигурации уровня системы в целом (так как
TNS_ADMIN
каталог заменяет весь$ORACLE_HOME/network/admin
каталог), но они добавляют или изменяют записи файлов конфигурации уровня системы. Если запись существует в файле конфигурации на уровне пользователя, то используется эта запись, если она не существует в файле конфигурации на уровне пользователя, то используется запись в файле конфигурации на уровне системы.источник