oracle tovarchar2_oracle中cast_to_raw和cast_to_varchar2字符转换,结果必须保存在中间表里面吗...

现在我要从一个与当前数据库不同字符集的数据库中查询中文记录,目前找到一种最佳实现方式就是selectf_get_varchar2(UTL_RAW.cast_to_raw@DBLINK_CTAIS_DQY(BTZQY))BTZQYfromctais1.s...

现在我要从一个与当前数据库不同字符集的数据库中查询中文记录,目前找到一种最佳实现方式就是

select f_get_varchar2(UTL_RAW.cast_to_raw@DBLINK_CTAIS_DQY(BTZQY)) BTZQY from ctais1.sb_ndsds_2008_fb11 (此处有一个圈a,就是2上面的字符) dblink_ctais_dqy

调用远程库的cast_to_raw方法,这样我查询出来是正确的,的确能够获得中间码

,但是为什么我

select UTL_RAW.cast_to_varchar2(UTL_RAW.cast_to_raw@DBLINK_CTAIS_DQY(BTZQY)) BTZQY from ctais1.sb_ndsds_2008_fb11 (此处有一个圈a,就是2上面的字符) dblink_ctais_dqy

却不能够查出中文字符呢

当我 create table tmp_aa as

select f_get_varchar2(UTL_RAW.cast_to_raw@DBLINK_CTAIS_DQY(BTZQY)) BTZQY from ctais1.sb_ndsds_2008_fb11 (此处有一个圈a,就是2上面的字符) dblink_ctais_dqy

然后

select UTL_RAW.cast_to_varchar2(BTZQY) BTZQY from ctais1.sb_ndsds_2008_fb11 (此处有一个圈a,就是2上面的字符) dblink_ctais_dqy

这样却又行了,为什么啊,为什么要把结果保存在一张表就行了,而直接处理就不行呢

其中 f_get_varchar2就是返回原始字符,方法体如下

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值