2

我正在尝试使用 cygwin sqlplus 连接到位于 myserver.mycompany.com 端口 1530 的远程 oracle 安装。当我尝试

sqlplus username@myserver.mycompany.com:1530/orcl

我得到错误:

ORA-12154: TNS:could not resolve the connect identifier specified

当我设置ORACLE_HOME为 /cygdrive/c/oracle/product/10.2.0/client_1时,我得到一个不同的错误:

Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

我可以telnet到服务器的1530端口,本地安装的SQL Developer也可以连接数据库。我究竟做错了什么?

4

6 回答 6

3

我不知道 Oracle 有一个本地 cygwin 客户端(如果我在这里错了,请纠正我,但我在 Oracle 的网站上也找不到任何提及)。如果您将 Cygwin 与 Windows 客户端一起使用,则需要使用本机 Windows 路径。它不会理解您的 /cygdrive 路径。

但是,我已经将 Win32 Oracle 客户端与 cygwin 一起使用并使其工作 - 相同的 shell 脚本可以在 Cygwin、Linux 和 Solaris 上工作。

于 2008-11-18T17:51:47.723 回答
3

没有 cygwin Oracle 客户端。如上回答,使用设置为 windows 路径的 ORACLE_HOME。

对于您问题的前半部分,请尝试查看 TNS_NAMES 环境变量的设置,如果未设置,您可能需要尝试将其设置到正确的位置。通常它默认为 %ORACLE_HOME%/network/admin/tnsnames.ora 。SQL Developer 保留它自己的 tnsnames 文件副本,因此您无法回复该文件来解决问题。

于 2008-11-18T18:41:00.353 回答
2
于 2016-04-27T13:45:53.170 回答
0

NXC 是对的——它不是我使用的 cygwin 客户端,而是 windows sqlplus 客户端。我设置了 windows 环境变量,ORACLE_HOME然后ORACLE_SID能够使用net_service_namefrom tnsnames.ora 在 cygwin bash shell 中运行 sqlplus。

于 2008-11-18T18:42:14.440 回答
0

它对我有用的方式是删除/cygdrive/d/cygdrive/cd:/or替换它们,c:/然后您sqlplus在 cygwin 会话中的调用将起作用。令人/cygdrive/DriveLetter困惑。

于 2015-03-18T13:07:53.573 回答
0

I have same error like you,

you should set not only ORACLE_HOME in windows Variables,

But also PATH include %ORACLE_HOME%\bin

then you can open windows cmd,

try sqlplus username/password@your_define_tnsname

if okay, then remove all ORACLE PATH setting in cygwin, restart cygwin,try it.

if failure, should let sqlplus works well in windows cmd at first

于 2016-06-24T01:10:48.913 回答