您的位置:首页 > 数据库

ORA-24777: 不允许使用不可移植的数据库链路

2016-04-18 17:29 459 查看
    之前写过一篇《比ORA-24777: 不允许使用不可移植的数据库链路更让人郁闷的事情》,今天又出现 了,但没有用到dblink啊。

    有一个数据库下面有两个用户A和B,A通过同义词访问B,大概有一百张表,奇怪的是只有一张表(TTT)操作不成功,报ORA-24777: 不允许使用不可移植的数据库链路,其他的表都没有问题,系统是用的XA驱动。

     诊断过程:

     1. 在用户B上查看这张TTT的定义,与其他的表的区别就是有blob字段。

     2. 在用户A上删除TTT的同义词,建一个与其结果一模一样的,确认功能是没有问题。

     3. 基本确定是blob字段的影响,这里没有dblink,但错误不会欺骗人,测试一下通过dblink访问。建立dblink,重新建立同义词

      CREATE SHARED DATABASE LINK dblink_to_B

        CONNECT TO B IDENTIFIED BY B

        AUTHENTICATED BY B IDENTIFIED BY B

        USING '10.10.23.12:1521/orcl';

      保存成功,读取失败

     4.测试到这里可以出解决方案了。插入用dblink,用一个同义词名,查询就用同义词B.TTT查询。

     5.还有一个解决方案,把系统的XA驱动换成thin驱动,但系统要做全功能测试,不太现实。

    

     总结:在同一个数据库下,A用户向B用户的表插入blog,如果是通过同义词的话,是通过dblink的技术实现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: