Facing SQL Error [600] [60000]: ORA-00600:内部错误代码,参数:[HO defi



场景如下:

: Oracle 19.3.0.0.0

: MySQL 8.0.22-13

我们已经创建了DBLINK从Oracle到MySQL使用DG4ODBC数据库链接。(跟进文件编号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时,它会返回数据。

问题," SQL Error [600] [60000]: ORA-00600:内部错误代码,参数:[HO define: Long fetch] "现在已经修好了。(当获取多个VARCHAR列时)

我们现在能够选择多个VARCHAR数据类型列,而不需要oracle引擎将其转换为LONG。(我已经测试了从SQL开发人员和DBeaver工具)为了解决这个问题,我们在odbc实例的初始化文件中包含了以下参数:

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

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

HS_KEEP_REMOTE_COLUMN_SIZE=LOCAL解决了我的问题,一个PostgreSQL数据库有一个表,有2个字段varchar(500)

相关内容