Как подключиться к базе данных Oracle с помощью SQLcl и SQLPlus, но без файла TNSNames.ORA?
У тебя есть:
- база данных Oracle
- установка Oracle Client, включая SQL*Plus
- информация TNS для #1
- НО НЕТ TNSNames.ORA файл или желание создать и поддерживать один
Как вы можете установить соединение SQL*Plus?
4 ответа
sqlplus user/password@(description=(address_list=(address=.......ODS)))
Текст в () - это информация, которую вы увидите для своей службы в файле TNSNames. Таким образом, вы можете просто использовать запись TNS явно
Обратите внимание, используйте кавычки, если в Unix иначе () интерпретируется оболочкой.
Или вы можете использовать синтаксис EZconnect (мой предпочтительный метод)
sqlplus user/password@//hostname/service_name
sqlplus user/password@//hostname:port/service_name
Обратите внимание, что для баз данных с многопользовательской архитектурой Oracle Database 12/18c вы ДОЛЖНЫ использовать /service_name, а не /SID, если вы хотите подключиться к подключаемой базе данных.
Также обратите внимание, что у нас есть 2 интерфейса командной строки.
SQL*Plus и SQLcl.
SQLcl основан на Java и является урезанной версией Oracle SQL Developer. Он поддерживает соединения на основе TNS, а также поддерживает синтаксис EZConnect. Одно существенное преимущество, которое он имеет перед SQL*Plus, заключается в том, что он не требует установки Oracle Client.
На этот вопрос первоначально ответил Том на AskTom.
Я обновил его ответ здесь, чтобы обратиться к Oracle 12c Multitenant и SQLcl.
Предполагая,
sqlcl
исполняемый файл присутствует в текущем каталоге, вы можете использовать
./sql user/password//host:port/service_name
Если вы не хотите оставлять пароль в истории bash, используйте это:
# connect
sql user@host:port/database
# will ask password later
# then connect to your database
sql > conn database
Используя tnsnames.ora
Это всего лишь один из четырех различных методов именования, см. Параметры для файла sqlnet.ora
Обычно ldap
а также nis
Подходят, только если у вас есть много баз данных Oracle, работающих в вашем помещении. Другие методы уже предоставлены @thatjeffsmith