- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在设置与 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/
我有一个在 Docker 容器中运行的 Python Flask 应用程序,该容器通过 SQLAlchemy 连接到 MS SQL Server(企业数据库)。但是,当我尝试构建容器时遇到包冲突。这是
我正在尝试在 redhat 6.3 中安装 msodbcsql v13。它显示 unixODBC(64 位) >= 2.3.1 需要在安装 msodbcsql 之前安装的依赖项错误。 我尝试在命令下运
我要问和回答这个问题,因为这使我花了很长时间才弄清楚,我希望答案从这里开始。 问题:一个长时间运行的unixODBC查询会阻止同一应用程序中的所有其他查询。 问题是:如何阻止这种情况的发生。 最佳答案
我正在使用 ArchLinux,我正在尝试安装 OpenEdge 进度驱动程序,以便我可以通过 PHP 访问它。我已经安装了 unixodbc 包和驱动程序,但是当我通过 isql 或 PHP 测试连
我用 C++ 编写了一些使用 ODBC 远程处理数据库的软件。在这种情况下,数据库在 Postgres 引擎中运行,而我的软件在安装了 unixODBC 和 odbc-postgres 驱动程序的 U
我使用unixODBC连接到mssql数据库通过 odbc。问题是无论我添加多少数据源odbc.ini,它始终使用列表中的第一个数据库.. odbcinst.ini [ODBC] Trace
我的应用程序用于从大文件的不同部分读取数据并更新表。数据的每个部分都与一个单独的表相关联。更新过程可以包含多个插入、更新和删除语句。 我试图将文件拆分为多个文件并运行 3、4 或 n 个应用程序实例以
我的unixodbc可以连接到PostgreSQL,但是unixodbc总是写入错误的跟踪文件。我在/tmp/odbc.log 中设置跟踪文件,但 unixodbc 总是将其写入/tmp/sql.lo
我正在使用 Ubuntu+php+unixodbc+mdbtools 来处理 .mdb 文件。 每件事(连接+选择)都很好,但是插入或更新语句。 我的代码是这样的: $mdbConnection =
我有一个类似的查询 select x from tableName where startDate = { ts '?' } for update;");
我在一个环境中工作,该环境在组织范围内集中安装的驱动器上安装了 unixODBC,但我们(实际开发人员)不允许在其中安装驱动程序或数据源。这一切都是倒退的,但我必须忍受它。 现在我正在尝试构建一个 p
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我需要将 LAMP(Linux Ubuntu 12.10、Apache 2、MySQL 5、PHP 5.3)服务器中的 PHP 脚本连接到 Access MDB 数据库(2003 版)。 1。 uni
我试图弄清楚这两个拼图在连接到 Linux 上的 MS-SQL 服务器时如何交互和组合在一起。 据我了解,FreeTDS 是用于与 MS-SQL 对话的协议(protocol)(即一组规则),它是真正
有两个主要的开源平台独立实现ODBC 。是iODBC和 unixODBC . 考虑到 Unix 作为 ODBC 用户平台和功能,这两种实现之间真正的实际差异是什么? 最佳答案 只是为了让您知道我使用
我已将此代码包含在当前事件主题的 functions.php 中,并且在 WINDOWS 平台 上完美运行(即:我首先将 .mdb 文件上传到服务器上,然后从文件中读取表格)。就像我们使用 MySQL
我已经为此工作了太久,似乎无法弄清楚。我确定我的 freetds.conf、odbc.ini 或 odbcinst.ini 有问题。我可以使用 tsql 连接到我的 mssql 2008 服务器,但仍
我在 Ubuntu Linux 上,想知道如何检测系统有什么 ODBC 驱动程序管理器(如果有的话)。 像 Rakib 的评论一样,我使用的一种非常粗略的方法是简单地尝试运行 isql (unixOD
我正在使用 Debian。我安装了 unixODBC 以及 FreeTDS。我正在使用 PHP 我已经阅读了几个操作方法,但遇到了一个问题。 我使用 tsql 测试了 FreeTDS,它工作正常。 我
我使用来自 brainman (http://code.google.com/p/odbc) 的 ODBC 驱动程序将 Golang 与 FreeTDS 结合使用 一切正常,直到我对盒子进行压力测试。
我是一名优秀的程序员,十分优秀!