为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server 64 V8
DB Version: 0x7000d
03134284404-20250930-295335-20164
Msg Version: 49
Gsu level(5) cnt: 0
【操作系统】:
【CPU】:Linux
【问题描述】*:DROP VIEW VIEW_DEPLOY_HOST_MEDIA;
CREATE OR REPLACE VIEW VIEW_DEPLOY_HOST_MEDIA AS
SELECT HM.PK_HOST_MEDIA AS HOST_MEDIA_ID,
P1.PK_PROBE AS PROBE_ID, P2.PK_PROBE AS ANALYSE_ID
FROM G_DEPLOY_HOST_MEDIA HM
JOIN G_DEPLOY_HOST H ON HM.PK_DEPLOY_HOST = H.PK_DEPLOY_HOST
LEFT JOIN G_PROBE P1 ON(H.ASSET_IP = P1.PROBE_IP AND HM.INSTALL_PATH = P1.INSTALL_PATH AND P1.PROBE_TYPE='smart-collect-probe')
LEFT JOIN G_PROBE P2 ON(H.ASSET_IP = P1.PROBE_IP AND HM.INSTALL_PATH = P1.INSTALL_PATH AND P1.PROBE_TYPE='smart-collect-analyse')
WHERE HM.INSTALL_STATUS = 1 AND (HM.UNINSTALL_STATUS IS NULL OR HM.UNINSTALL_STATUS = 0);
视图执行后,PK_HOST_MEDIA字段是char(32)变成了char(128),
哪里的配置不对吗?
先查一下 G_DEPLOY_HOST_MEDIA 表中字段 PK_HOST_MEDIA 的定义是不是 CHAR(32 CHAR)
如果是的话,你看看能否从达梦自带的管理工具(manager)里从对象列表树查看视图 VIEW_DEPLOY_HOST_MEDIA 中 HOST_MEDIA_ID 字段的类型显示是否与源表字段一致

看下这个是多少,开启字符为单位 char默认放大四倍,ddl是char32,实际存放为32*4
select * from v$option where para_name ='LENGTH_IN_CHAR';