【问题标题】:Error ORA-00600 in select table in Oracle dblinkOracle dblink 中的选择表中出现错误 ORA-00600
【发布时间】:2019-11-28 05:14:21
【问题描述】:

我创建了一个 Oracle Dblink 来访问 SQLServer 表。 我可以看到我有权访问的表/视图。

但是当我执行一个选择时,它返回 ORA-00600。

我的 dblink 创建命令:

CREATE DATABASE LINK SQLREQUERIM CONNECT TO my_user IDENTIFIED BY "myPassword" USING 'MSSQLREQUERIM';

我的 tnsnames.ora 文件

MSSQLREQUERIM =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=myOracleHost)(PORT=1521))
    (CONNECT_DATA=(SID=MSSQLREQUERIM))
    (HS=OK)
  )

我的 listener.ora 文件

SID_LIST_LISTENER =
 (SID_LIST =
   (SID_DESC=
     (SID_NAME=MSSQLREQUERIM)
     (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
     (PROGRAM=dg4odbc)
   )
 )

我的 odbc.ini

[ODBC Data Sources]
MSSQLREQUERIM = MSSQL Server

[MSSQLREQUERIM]
Driver=/usr/lib64/libtdsodbc.so.0
Description     = MSSQL Server
Trace           = No
Server          = mySQLServerHost
Database        = REQUERIM
Port            = 60472
TDS_Version     = 7.2

我的 iniMYSQLREQUERIM.ora 文件

HS_FDS_CONNECT_INFO = MSSQLREQUERIM
HS_FDS_TRACE_LEVEL = DEBUG
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
set ODBCINI=/etc/odbc.ini

【问题讨论】:

  • ORA-00600 表示您需要联系 Oracle 支持
  • 具体请参见this Oracle Support article - 我认为问题在于某些 DB 链接驱动程序将 SQL Server 中的大文本字段转换为 LONG 数据类型,这在 Oracle 中有很多限制 - 比如每个表只允许 1 个.尝试只选择某些列,而不是 select *
  • 感谢 kfinity,你杀了这个字谜

标签: oracle dblink


【解决方案1】:

该错误是由于某些表列的类型(文本)与 Oracle 不兼容。禁止搜索这些列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2017-09-14
    • 2022-01-15
    相关资源
    最近更新 更多