通过 SQLPLUS 连接 Oracle 数据库
Posted
技术标签:
【中文标题】通过 SQLPLUS 连接 Oracle 数据库【英文标题】:Oracle Database connection via SQLPLUS 【发布时间】:2014-03-05 10:37:58 【问题描述】:我正在尝试从 SQLPlus 连接到我的 Oracle 数据库,但无法连接。
我的机器上有 Oracle 客户端 (10g)。以下是我能够从我的 Java 应用程序连接的详细信息。
connect('dbi:Oracle://IP/wborcle', 'username', 'pwd'));
通过 SQLPLUS 连接时主机字符串是什么?
【问题讨论】:
您遇到了什么错误? ORA : 12154 TNS : 无法解析指定的连接标识符 您是否 100% 确定您使用的是 Java? DBI 是一个用于连接到 Oracle 的 Perl 库。 【参考方案1】:试试
sqlplus username/password@host:port/service
sqlplus system/system@localhost:1521/xe
复制自 https://dba.stackexchange.com/questions/65032/connect-to-sql-plus-from-command-line-using-connection-string
【讨论】:
此方法连接Oracle数据库链接失败【参考方案2】:当您尝试连接数据库时,Oracle 提供了几种不同的方法来查找数据库:
tnsnames.ora 条目 LDAP EZConnect ...最常见的方法是将您要连接的数据库放入您的tnsnames.ora
;通常,您的客户端安装包含一个您可以修改的示例 tnsnames.ora 文件。
最简单的方法可能是使用 EZConnect。 EZConnect 字符串的构建方式类似于
<username>/<password>@<hostname>:<port>/SID
所以在你的情况下,它(可能)会像
sqlplus scott/tiger@localhost:1521/wborcle
【讨论】:
【参考方案3】: sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))
也许,这可能取决于您使用的命令行环境,您需要引用字符串,例如
sqlplus "user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"
或
sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
【讨论】:
您好 Mariano,您能解释一下吗?我无法理解这一点。 “你 100% 确定你在使用 Java 吗?DBI 是一个用于连接到 Oracle 的 Perl 库。”【参考方案4】: sqlplus 用户名/密码@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname)(Port=1521))(CONNECT_DATA=(SID=sidname)))【讨论】:
【参考方案5】:如果使用标准客户端,为了使用 ezconnect 语法,您可能必须在客户端的 network/admin 目录中的 sqlnet.ora 文件中设置它
names.directory_path=(tnsnames,ezconnect)
【讨论】:
以上是关于通过 SQLPLUS 连接 Oracle 数据库的主要内容,如果未能解决你的问题,请参考以下文章
无法通过服务名使用 SQLPLUS 连接到 oracle 数据库