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

    之前写过一篇《比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的技术实现的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORA-12557错误是Oracle数据库中的一个常见错误,通常是由于协议适配器无法加载而引起的。 这个错误通常发生在尝试连接Oracle数据库时,客户端无法找到或加载适当的协议适配器。协议适配器是Oracle数据库客户端用于与服务器进行通信的组件,有不同的适配器如TCP/IP、IPC等。 要解决这个问题,有以下几个可能的解决方法: 1.检查TNSNAMES.ORA文件:确保在客户端的Oracle网络配置文件(通常是TNSNAMES.ORA)中正确设置了数据库的连接信息,包括正确的主机名、端口号、服务名等。 2.检查ORACLE_HOME环境变量:确保ORACLE_HOME环境变量已正确设置,指向正确的Oracle软件安装目录。 3.检查网络连接:确保客户端与数据库服务器之间的网络连接正常,可以使用PING命令来测试连接是否正常。 4.检查协议适配器的加载:在客户端的ORACLE_HOME/bin目录下,查找是否有相应的协议适配器文件,例如如果使用TCP/IP协议,应该有一个名为"tcp*.so"或"tcp*.dll"的文件,如果缺少这个文件,可能需要重新安装Oracle客户端。 5.检查防火墙设置:如果客户端与数据库服务器之间有防火墙,确保防火墙允许数据库服务器的通信。 总而言之,ORA-12557错误是由于无法加载适当的协议适配器而引起的。要解决这个问题,可以检查网络连接、环境变量设置、协议适配器文件是否存在等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值