gpt4 book ai didi

linux - unixODBC 产生 ORA-12154 TNS 解析错误,而 sqlplus 工作正常

转载 作者:太空狗 更新时间:2023-10-29 12:10:35 25 4
gpt4 key购买 nike

我在设置与 Oracle 11g R1 数据库的 unixODBC 连接时遇到了一个奇怪的错误。一切设置完成后,我想尝试使用 isql 测试连接。它不断返回错误

[08004][unixODBC][Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified

令我困惑的是,我可以使用相同的环境和 TNS 符号通过 sqlplus 进行连接

sqlplus dbuser/password@DBOPBAC9
Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production

SQL>

我已经处理了两天的问题,但找不到解决方案。 ORA-12154 是一个常见错误,我已经找到了很多可能的解决方案。但他们都不适合我。这是令人沮丧的。

这是我尝试过的:

提到的环境变量都是在启动isql之前设置的

ORACLE_SID=DBOPBAC9
ORACLE_BASE=/CSGPBAC9/DBA/oracle
ORACLE_INSTANT_CLIENT_64=/CSGPBAC9/opt/myuser/tools/instantclient_11_2_x64
ORACLE_HOME=/CSGPBAC9/DBA/oracle/product/11.2.0
TNS_ADMIN=/CSGPBAC9/DBA/oracle/product/11.2.0/network/admin

这是在 $TNS_ADMIN 目录中找到的 tnsnames.ora

DBOPBAC9 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host IP)(PORT = 1480))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBOPBAC9)
)
)

这是sqlnet.ora

TRACE_LEVEL_CLIENT = OFF
SQLNET.EXPIRE_TIME = 10
NAMES.DIRECTORY_PATH = (TNSNAMES)
DIAG_ADR_ENABLED=off

这是我的 unixODBC 设置。我已将 unixODBC 安装到目录 /opt/unixODBC 并相应地设置环境变量。 odbc.ini 位于目录 /opt/myuser/tools/unixODBC 中,并且还设置了变量。

odbc.ini

[OracleODBC-11g]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CloseCursor = F
DisableDPM = F
DisableMTS = T
Driver = Oracle 11g ODBC driver
DSN = OracleODBC-11g
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MaxLargeData = 0
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T
ServerName = //host.ip/DBOPBAC9
SQLGetData extensions = F
Translation DLL =
Translation Option = 0
DisableRULEHint = T
UserID =
StatementCache=F
CacheBufferSize=20
UseOCIDescribeAny=F

odbcinst.ini

[Oracle 11g ODBC driver]
Description = Oracle ODBC driver for Oracle 11g
Driver =
Driver64 = /CSGPBAC9/opt/myuser/tools/instantclient_11_2_x64/libsqora.so.11.1
Setup =
FileUsage =
CPTimeout =
CPReuse =

I have created a strace output检查错误但不幸的是我找不到任何东西。在我看来,它似乎能够找到 tnsnames.ora 文件并读取它

最佳答案

你需要编辑odbc.ini

ServerName = TNS_ALIAS

关于linux - unixODBC 产生 ORA-12154 TNS 解析错误,而 sqlplus 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45906098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com