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

时间:2018-03-17 14:27:27

标签: oracle sqlplus tnsnames sqlcl

你有:

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

    如何进行SQL * Plus连接?

3 个答案:

答案 0 :(得分:5)

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客户端。

这个问题最初由汤姆AskTom回答。

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

答案 1 :(得分:0)

使用tnsnames.ora文件只是四种不同命名方法中的一种,请参阅Parameters for the sqlnet.ora File

通常ldapnis仅适用于在您的场所运行许多Oracle数据库的情况。 @thatjeffsmith已经提供了其他方法

答案 2 :(得分:0)

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

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