ORA-28513: internal error in heterogeneous remote agent When Numeric Value is...
现象:
已安装 Oracle Database 12.2.0.1 和 Oracle Database Gateway for ODBC 12.2.0.1 使用 Attunity ODBC 驱动程序
访问 Attunity 数据库 使用 ORA-28513 返回 NUMBER 的查询失败,例如:
SQL> desc <table>@dblink;<-- 无数值
名称 Null?类型
-------------------------------- -------- -------------------------------------------------
COl1 NOT NULL CHAR(2)
COl2 NOT NULL CHAR(30)
COl3 NOT NULL CHAR(3)
COl4 NOT NULL CHAR(10)
COl5 NOT NULL CHAR(6)
COl6 NOT NULL CHAR(8)
COl7 NOT NULL CHAR(30)
SQL> SELECT * FROM <table>@dblink where rownum < 2;<-- 按预期
工作 COL1 COL2 COL3 COL4 COL5 COL6 COL7
-- ------------------------------ --- ---------- ------ -------- ------------------------------
XX SXXXXXY XXX XXX324 XXXXX363 XXXXX
SQL> select count(*) from <table>@dblink;<-- 从 <table 中选择 count(*) 的计数
返回数值>@dblink
*
第 1 行出错:
ORA-28513: 异构远程代理
中的内部错误 ORA-02063: DBLINK
的前一行 网关跟踪文件显示差异。
121:
在 1/2019/03-05:14:18
输入 hgodscr,光标 id 为 33 分配 hoada @ 0x1b81f00
在 2019/03/05-14:18:33
输入 hgodscr_process_sellist_description 在 2019/03/05-14:18:33
列:1($$CALC_1):dtype:2(数字),prc/scl:19/0,nullbl:1,八位字节:0,符号:1,基数:0
退出 hgopcda,rc=0 在 2019/03/05-14:18:33
hgodscr,第 470 行:打印 hoada @ 0x1b81f00
MAX:1, ACTUAL:1, BRC:100, WHT=5 (SELECT_LIST)
DTY NULL-OK LEN MAXBUFLEN PR/SC CST IND MOD NAME
3 十进制 Y 21 21 19/ 0 0 0 0 $$CALC_1
退出 hgodscr, rc=0 at 2019/03/05-14:18:33
122:
在 1/2019/03-05:14:14
输入 hgodscr, 游标 id 35 分配 hoada @ 0x1fd2520
在 2019/03/05-14:14:35
输入 hgodscr_process_sellist_description 在 2019/03/05-14:14:35 进入 hgopcda
列:1($$CALC_1): dtype:2 (数字), prc/scl:19/0, nullbl:1, 八位字节:0, 符号:1, 基数:0
退出 hgopcda, rc=0 在 2019/03/05-14:14:35
hgodscr,第 493 行:打印 hoada @ 0x1fd2520
MAX:1,实际:1,BRC:100,WHT=5 (SELECT_LIST)
DTY NULL-OK LEN MAXBUFLEN PR/SC CST IND MOD NAME
2 数字 Y 21 21 19/ 0 0 0 0 $$CALC_1
退出 hgodscr, rc=0 在 2019/03/05-14:14:35
原因:
定义为 SQL_NUMERIC 或类型映射到该列的列的列将出错
在具有SQL_NUMERIC列或映射到SQ_NUMERIC类型的表中执行选择。如果您收到“无效的 C 数据类型”错误消息,则您遇到了此问题
处理方法:
应用 Bug 28248841 的补丁
现象:
已安装 Oracle Database 12.2.0.1 和 Oracle Database Gateway for ODBC 12.2.0.1 使用 Attunity ODBC 驱动程序
访问 Attunity 数据库 使用 ORA-28513 返回 NUMBER 的查询失败,例如:
SQL> desc <table>@dblink;<-- 无数值
名称 Null?类型
-------------------------------- -------- -------------------------------------------------
COl1 NOT NULL CHAR(2)
COl2 NOT NULL CHAR(30)
COl3 NOT NULL CHAR(3)
COl4 NOT NULL CHAR(10)
COl5 NOT NULL CHAR(6)
COl6 NOT NULL CHAR(8)
COl7 NOT NULL CHAR(30)
SQL> SELECT * FROM <table>@dblink where rownum < 2;<-- 按预期
工作 COL1 COL2 COL3 COL4 COL5 COL6 COL7
-- ------------------------------ --- ---------- ------ -------- ------------------------------
XX SXXXXXY XXX XXX324 XXXXX363 XXXXX
SQL> select count(*) from <table>@dblink;<-- 从 <table 中选择 count(*) 的计数
返回数值>@dblink
*
第 1 行出错:
ORA-28513: 异构远程代理
中的内部错误 ORA-02063: DBLINK
的前一行 网关跟踪文件显示差异。
121:
在 1/2019/03-05:14:18
输入 hgodscr,光标 id 为 33 分配 hoada @ 0x1b81f00
在 2019/03/05-14:18:33
输入 hgodscr_process_sellist_description 在 2019/03/05-14:18:33
列:1($$CALC_1):dtype:2(数字),prc/scl:19/0,nullbl:1,八位字节:0,符号:1,基数:0
退出 hgopcda,rc=0 在 2019/03/05-14:18:33
hgodscr,第 470 行:打印 hoada @ 0x1b81f00
MAX:1, ACTUAL:1, BRC:100, WHT=5 (SELECT_LIST)
DTY NULL-OK LEN MAXBUFLEN PR/SC CST IND MOD NAME
3 十进制 Y 21 21 19/ 0 0 0 0 $$CALC_1
退出 hgodscr, rc=0 at 2019/03/05-14:18:33
122:
在 1/2019/03-05:14:14
输入 hgodscr, 游标 id 35 分配 hoada @ 0x1fd2520
在 2019/03/05-14:14:35
输入 hgodscr_process_sellist_description 在 2019/03/05-14:14:35 进入 hgopcda
列:1($$CALC_1): dtype:2 (数字), prc/scl:19/0, nullbl:1, 八位字节:0, 符号:1, 基数:0
退出 hgopcda, rc=0 在 2019/03/05-14:14:35
hgodscr,第 493 行:打印 hoada @ 0x1fd2520
MAX:1,实际:1,BRC:100,WHT=5 (SELECT_LIST)
DTY NULL-OK LEN MAXBUFLEN PR/SC CST IND MOD NAME
2 数字 Y 21 21 19/ 0 0 0 0 $$CALC_1
退出 hgodscr, rc=0 在 2019/03/05-14:14:35
原因:
定义为 SQL_NUMERIC 或类型映射到该列的列的列将出错
在具有SQL_NUMERIC列或映射到SQ_NUMERIC类型的表中执行选择。如果您收到“无效的 C 数据类型”错误消息,则您遇到了此问题
处理方法:
应用 Bug 28248841 的补丁