【问题标题】:Facing SQL Error [600] [60000]: ORA-00600: internal error code, arguments: [HO define: Long fetch] - SQL Developer面对 SQL 错误 [600] [60000]:ORA-00600:内部错误代码,参数:[HO 定义:Long fetch] - SQL Developer
【发布时间】:2021-10-17 21:54:03
【问题描述】:

下面是场景:

来源:Oracle 19.3.0.0.0

目标:MySQL 8.0.22-13

我们使用 DG4ODBC 数据库链接创建了从 Oracle 到 MySQL 的 DBLINK。 (遵循文档 ID 1320645.1) 我们能够从 Oracle 连接和选择 MySQL,但是我们面临以下问题:

  1. 从 Oracle SQL Prompt 连接时,它可以正常工作,如下所示:
SQL> select * from "ocsweb"."sounds"@myodbc5;

        ID HARDWARE_ID MANUFACTURER                                                                     NAME                                      DESCRIPTION
---------- ----------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
         1        2313 Microsoft                                                                        High Definition Audio Device              High Definition Audio Device
         2        2313 Intel(R) Corporation                                                             Intel(R) Display Audio                    Intel(R) Display Audio

SQL>
  1. 但是,当我尝试从 SQL 开发人员执行相同的 SQL 或使用 Python 和 cx_oracle 连接到数据库时,我们看到以下错误:
SQL Error [600] [60000]: ORA-00600: internal error code, arguments:
[HO define: Long fetch], [], [], [], [], [], [], [], [], [], [], []¶
  1. 当我们尝试仅使用一个 varchar 数据类型列进行 SELECT 时,它返回数据正常。

【问题讨论】:

  • 这可能是引用的问题。显示您的 Python 代码。
  • ora-0600 意味着 - 根据定义 - 您遇到了“未处理的异常”(又名:错误)。唯一的解决方法是使用您的付费支持登录到 My Oracle Support,然后搜索“ora-0600”以获取查找工具以查看是否有针对特定问题的修复程序,如错误中的第一个参数所标识信息。如果这不能解决问题,您必须打开服务请求。

标签: oracle oracle-sqldeveloper dblink


【解决方案1】:

问题,“SQL 错误 [600] [60000]: ORA-00600: internal error code, arguments: [HO define: Long fetch]” 现已修复。 (当获取多个 VARCHAR 列时)

我们现在可以选择多个 VARCHAR 数据类型列,而无需 Oracle 引擎将其转换为 LONG。 (我已经通过 SQL Developer 和 DBeaver 工具进行了测试) 我们在 odbc 实例的初始化文件中包含以下参数来解决此问题:

HS_KEEP_REMOTE_COLUMN_SIZE=LOCAL(指定在从非Oracle数据库到网关,再到Oracle数据库的数据转换过程中,计算(VAR)CHAR数据类型的长度时是否抑制比率扩展。当设置为 LOCAL 时,网关和 Oracle 数据库之间的扩展被抑制。)

HS_NLS_LENGTH_SEMANTICS=CHAR(设置为CHAR时,非oracle数据库的(VAR)CHAR列将被解释为具有CHAR语义)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2013-05-16
    • 2014-06-23
    相关资源
    最近更新 更多