4

你有:

  1. 甲骨文数据库
  2. Oracle 客户端安装,包括 SQL*Plus
  3. #1 的 TNS 信息
  4. 但没有 TNSNames.ORA 文件或创建和维护一个文件的愿望

如何让您的 SQL*Plus 连接正常运行?

4

4 回答 4

7
sqlplus user/password@(description=(address_list=(address=.......ODS))) 

() 中的文本是您将在 TNSNames 文件中看到的服务信息。因此,您可以简单地显式使用 TNS 条目

注意,如果在 Unix 中使用引号,否则 () 由 shell 解释。

或者您可以使用 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 客户端。

这个问题最初是由 Tom 在AskTom上回答的。

我在这里更新了他的答案以解决 Oracle 12c Multitenant 和 SQLcl。

于 2018-03-17T14:27:52.870 回答
1

假设sqlcl可执行文件存在于当前目录中,您可以使用

./sql user/password//host:port/service_name

于 2021-07-07T07:49:04.450 回答
0

如果您不想在 bash 历史记录中留下密码,请使用以下命令:

# connect
sql user@host:port/database
# will ask password later
# then connect to your database
sql > conn database
于 2021-08-27T14:11:53.970 回答
0

Using a tnsnames.ora file is just one out of four different naming methods, see Parameters for the sqlnet.ora File

Usually ldap and nis are suitable only when you have many Oracle databases running in your premises. Other methods are already provided by @thatjeffsmith

于 2018-03-17T19:14:32.043 回答