注册

ZHS16GBK编码的oracle迁移到UTF-8编码的达梦数据库物化视图问题

天天小白 2025/06/06 198 2 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:centos7.6
【CPU】:
【问题描述】*:

前提:DM的编码必须是UTF-8,不能修改

我在DM8数据库中创建了一个DBlink ; remote_db_link
我想把remote_db_link中DZJC20250403模式中COCT_CONTRACT
表的FFJ字段抽取成一个物化视图 FFJ是VARCHAR2(4000)类型的

在创建物化视图时:
CREATE MATERIALIZED VIEW COCT_CONTRACT
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS select
FFJ AS FFJ
from DZJC20250403.COCT_CONTRACT@remote_db_link;
提示[-7158]:远程操作符执行失败,错误详情[oracle column-level return code [1406]]

sql换成
CREATE MATERIALIZED VIEW COCT_CONTRACT
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS select
CAST(FFJ as VARCHAR(8000)) AS FFJ
from DZJC20250403.COCT_CONTRACT@remote_db_link;
会提示 [-7158]:远程操作符执行失败,错误详情[ORA-00910: specified length too long for its datatype]

换成
CREATE MATERIALIZED VIEW COCT_CONTRACT
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS select
CAST(FFJ AS TEXT) AS FFJ
from DZJC20250403.COCT_CONTRACT@remote_db_link;
提示[-7158]:远程操作符执行失败,错误详情[ORA-00902: invalid datatype]

换成
CREATE MATERIALIZED VIEW COCT_CONTRACT
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS select
CAST(FFJ AS CLOB) AS FFJ
from DZJC20250403.COCT_CONTRACT@remote_db_link;
提示 [-7158]:远程操作符执行失败,错误详情[ORA-00932: inconsistent datatypes: expected - got CLOB]

换成
CREATE MATERIALIZED VIEW COCT_CONTRACT
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS select
CAST(TO_BLOB(FFJ) AS CLOB) AS FFJ
from DZJC20250403.COCT_CONTRACT@remote_db_link;
提示 [-6147]:无效的十六进制数字

换成
CREATE MATERIALIZED VIEW COCT_CONTRACT
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS select
CAST(TO_BLOB(HEX(FFJ)) AS CLOB) AS FFJ
from DZJC20250403.COCT_CONTRACT@remote_db_link;

会提示[-7158]:远程操作符执行失败,错误详情[oracle column-level return code [1406]]

请问下我应该怎么操作才可以成功创建物化视图???

回答 0
暂无回答
扫一扫
联系客服