如何使用SQLcl和SQLPlus连接到Oracle数据库,但没有TNSNames.ORA文件?

如何使用SQLcl和SQLPlus连接到Oracle数据库,但没有TNSNames.ORA文件?,oracle,sqlplus,tnsnames,sqlcl,Oracle,Sqlplus,Tnsnames,Sqlcl,你有: Oracle数据库 Oracle客户端安装,包括SQL*Plus #1的TNS信息 但是没有TNSNames.ORA文件,也没有创建和维护一个文件的愿望 如何使SQL*Plus连接正常运行 sqlplus user/password@(description=(address_list=(address=.......ODS))) ()中的文本是您将在TNSNames文件中看到的服务信息。因此,您可以简单地显式地使用TNS条目 注意,如果在Unix中()由shell解释,请使用引号

你有:

  • Oracle数据库
  • Oracle客户端安装,包括SQL*Plus
  • #1的TNS信息
  • 但是没有TNSNames.ORA文件,也没有创建和维护一个文件的愿望
  • 如何使SQL*Plus连接正常运行

    sqlplus user/password@(description=(address_list=(address=.......ODS))) 
    
    ()中的文本是您将在TNSNames文件中看到的服务信息。因此,您可以简单地显式地使用TNS条目

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

    或者您可以使用EZconnect语法(我的首选方法)

    请注意,对于Oracle Database 12/18c多租户体系结构数据库,如果要连接到可插拔数据库,则必须使用/service_名称而不是/SID

    还要注意,我们现在有2个命令行界面

    SQL*Plus和SQLcl

    基于java,是Oracle SQL Developer的精简版本。它支持基于TNS的连接,还支持EZConnect语法。与SQL*Plus相比,它的一个显著优势是不需要安装Oracle客户端

    这个问题最初是由汤姆·安回答的


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

    使用
    tnsnames.ora
    文件只是四种不同命名方法中的一种,请参见


    通常,
    ldap
    nis
    仅适用于在您的办公场所中运行多个Oracle数据库的情况。@thatjeffsmith

    已经提供了其他方法,谢谢@KaushikNayak-我们添加了大量现代功能来补充现有的SQL*Plus功能。您可能还喜欢选项卡完成、命令历史记录、DDL和别名(构建自己的命令)功能。
    sqlplus user/password@//hostname/service_name 
    
    sqlplus user/password@//hostname:port/service_name