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