如何进行 Oracle 连接错误故障排除。
Oracle 驱动程序需要具有唯一格式的非常特定的连接语句,但可能并不总是需要 TNSNames.ora 文件。例如,如果您仅安装了 Tableau 所提供的 Oracle 文件,并且没有独立的 Oracle 客户端,则 Oracle 错误消息仍将引用 TNSNames.ora 文件,从而使故障排除更加复杂。
通常,纠正“高级 Oracle 连接”对话框中的路由或命名语法,或者使用 .WORLD 数据库全名,即可解决大部分 Oracle 连接问题。如果连接错误需要进一步进行故障排除,请参阅下面列出的 5 种常见连接错误。
ORA-03113 是任何干扰 Oracle 会话的问题的全捕获类型错误。造成该错误的原因可能有很多。请参阅下表,了解故障排除指南。
从 Tableau Desktop 开始页面,选择“连接到数据”。
在“连接”页面上,单击“Oracle”,然后单击“确定”。
有关完成连接步骤的更多信息,请参阅 Desktop 帮助中的 Oracle 数据库主题。
SELECT "NumericBins", "Key" as "Key",
"NumericBins", "Measure E-2" AS "Measure E-2",
"NumericBins", "Measure E-1" AS "Measure E-1",
"NumericBins", "Measure E+0" AS "Measure E+0",
"NumericBins", "Measure E+1" AS "Measure E+1",
"NumericBins", "Measure E+4" AS "Measure E+4",
"NumericBins", "Measure E+7" AS "Measure E+7"
FROM "TestV1", "NumericBins" "NumericBins" 在连接到此数据库的 SQL 会话中,粘贴并运行查询。预期响应为错误 ORA-7445:遭遇异常:核心转储,确认问题为预期的 ORA-3113。
透明网络底层 (TNS) 无法解析服务名称时,出现 ORA-12154。服务名称在 TNSNames.ora 文件中指定,该文件位于 %ORACLE_HOME%\network\admin\ 文件夹下。通常,TNSNames.ora 文件中的信息不正确时会出现此错误。例如:
要解决此问题,请按照下面列出的顺序,尝试以下 3 种故障排除选项中的其中一种。
提供数据库全名,包括位于以下两个位置的 .world 扩展名:
以及
选项 2:确保 Tableau Server 运行身份用户帐户具有访问 TNSNames.ora 的权限(仅限 Tableau Server)
如果安装了 Tableau Server,请完成以下过程以确保 Tableau Server 运行身份用户帐户具有访问 TNSNames.ora 文件位置的权限。如果运行身份用户帐户不具有权限,则 Tableau Server 无法访问 Oracle 数据源详细信息。
验证计算机上 TNSNames.ora 文件或者等效的 SQLNET.ora 或 LDAP.ora 文件的位置。
注意:默认情况下,TNSNames.ora 文件位于 <oracle 目录>\network\admin 目录下。例如,C:\Oracle_Client\network\admin。
确认 TNS_ADMIN 变量指向步骤 1 中描述的一个或多个文件的位置。
注意:要检查 TNS_ADMIN 变量,请单击“开始”按钮,然后选择控制面板 > 系统。单击“高级系统设置”,单击“高级”标签,然后单击“环境变量”按钮。
系统变量文件路径必须采用 UNC 格式。
使用浏览器打开 TSM:https://<tsm-computer-name>:8850;有关更多信息,请查看登录 Tableau 服务管理器 Web UI。
单击安全性选项卡,然后单击以服务帐户身份运行选项卡。
在服务器运行身份用户下方,复制用户名字段中的信息。
转到 TNSNames.ora 文件所在的文件夹。
右键单击文件夹并选择“属性”。单击“安全”标签,然后单击“编辑”按钮。
在组或用户名称下,单击“添加”按钮。
在“输入要选择的对象名称”文本框中,粘贴在步骤 6 中复制的运行身份用户帐户的详细信息。
完成后,单击“确定”。
在“权限”区域,确保选中“完全控制”和“修改”复选框。
单击“确定”以关闭对话框。
选项 3:验证 TNSNames.ora 中的所有信息是否正确无误
如果以上故障排除步骤未解决问题,请继续阅读并完成过程,以验证 TNSNames.ora 文件中的其他信息是否正确提供。
TNSNames.ora 文件如下所示:
QAORCL10.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MY_HOST_NAME)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MY_SERVICE_NAME)
)
)
在文件中,感兴趣的 3 个变量是 HOST、PORT 和 SERVICE_NAME。从 TNSNames.ora 文件复制这些变量,并将其保持可用。这些变量区分大小写。以下步骤描述如何为您的连接提供这些变量。
从 Tableau Desktop 开始页面,选择“连接到数据”。
在“连接”页面上,单击“Oracle”。
提供 TNSNames.ora 文件中的以下信息:
注意:变量区分大小写。
从“架构”下拉列表中选择一个架构,将一个表格拖到联接区域,然后单击“转到工作表”。
完成设置 Oracle 连接以使用 TNSNames.ora 或 LDAP.ora 一文中的步骤。
重要信息:
通常,SERVICE 值不正确时出现此错误。
要解决此问题,需找出正确的 SERVICE 值,打开位于 %ORACLE_HOME%\network\admin\ 文件夹下的 TNSNames.ora 文件。必要时,参阅 ORA_12154 下的步骤。
通常,PORT 值不正确时出现此错误。
要解决此问题,使用 1521 或 1526 替换 PORT 值。请尝试目前未使用的值。
连接到 Oracle 时或从 Oracle 数据源创建数据提取时,出现此错误。通常,此错误由安装了不正确的 Oracle 驱动程序而引起。
要解决此问题,请从驱动程序页面安装适用于您当前使用的 Tableau 版本的正确 Oracle 驱动程序。
除了上述常见错误之外,如果您使用 Tableau Desktop/Server 2020.2 或更高版本并出现性能问题,例如解压缩刷新时间过长,您可以尝试下载并安装 Oracle OCI 驱动程序。 请参阅相关链接中的文章。您可在此处下载驱动程序。
如果您的计算机上未安装 Oracle 客户端,请确保从您的数据库管理员处获取必要文件。如果 Oracle 数据连接错误仍然存在,请执行以下操作:
ORA-12154:TNS 无法解析服务名称提示
注意:尽管我们会尽力保持第三方内容引用的正确性,但此处提供的信息可能会进行更改而不另行通知。
运行自定义 SQL 时出现错误:“ora-00907:缺少右括号”
在 2020.2 版及更高版本中,创建/刷新 Oracle 提取的时间要长得多001473195

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.