ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-7445(qxuagtag)错误

ORA-7445(qxuagtag)错误

原创 Linux操作系统 作者:yangtingkun 时间:2007-06-21 00:00:00 0 删除 编辑

今天无意中碰到一个小bug


环境9204 FOR SOLARIS8,错误信息如下:

ORA-07445: exception encountered: core dump [0000000100D3E708] [SIGSEGV] [Address not mapped to object] [0x000000020] [] []
Current SQL statement for this session:
SELECT "A1"."PLAT_FATHER","ZH_NDMAIN"."F_LINK"@"GPODB.US.ORACLE.COM"("A1"."ID") FROM "PLT_PLAT" "A1" WHERE "A1"."PLAT_CLASS"=2 GROUP BY "A1"."PLAT_FATHER"

检查第一个有效的错误函数为:qxuagtag

观察这个SQL,发现居然是我自己执行的,只不过并不是在这个数据库上执行的,原始SQL也不是上面这个。

原始SQL语句为:SELECT PLAT_FATHER, F_LINK(ID) FROM PLT_PLAT WHERE PLAT_CLASS = 2 GROUP BY PLAT_FATHER。这个SQL当时是在数据库GPODB.US.ORACLE.COM中执行的。

F_LINK是自定义聚集函数,详细描述在这里:http://yangtingkun.itpub.net/post/468/3380

由于PLT_PLAT是一个指向远端数据库的同义词,Oracle自动将远端站点作为了驱动站点,所以将SQL语句发送到目标库执行,在执行过程中由于找不到远端(也就是原始站点)的数据库链而报错。

关于这个问题的详细描述以前也讨论过,详细可以参考:

自定义聚集函数访问远端对象(一):http://yangtingkun.itpub.net/post/468/112489

自定义聚集函数访问远端对象(二):http://yangtingkun.itpub.net/post/468/112499

自定义聚集函数访问远端对象(三):http://yangtingkun.itpub.net/post/468/113687

问题并不奇怪,不过奇怪的是Oracle报了一个ORA-7445错误,而且第一个错误函数qxuagtag比较少见。查询了半天的METALINK,没有找到一个类似的情况。

其实问题本身到没有多大,解决起来也很简单,在上面的三个链接中有详细的描述,这里给出一个简单的解决方法:

SQL> COL LINK_ID FORMAT A70
SQL> SELECT /*+ DRIVING_SITE(ID) */ PLAT_FATHER, F_LINK(ID) LINK_ID
2 FROM PLT_PLAT, DUAL D
3 WHERE PLAT_CLASS = '2'
4 GROUP BY PLAT_FATHER;

PLAT_FATHER LINK_ID
------------------------ --------------------------------------------------------------------------
FR20T0000020000000000001 FR20T0000020000000000006,FR20T0000020000000000008,FR20T0000020000000000021

1 row selected.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69319/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10494370