Oracle 19C视图创建后CHAR(12)变为VARCHAR的技术问询
问题:Oracle 19C视图中CHAR(12)字段被转换为VARCHAR类型
某Oracle 19C客户在创建视图时发现,原表定义为CHAR(12)的字段,在视图中被转换为VARCHAR类型,与开发工具模型的数据类型要求不符,引发问题。
当前交付的视图使用UNION ALL语句,已确认列完全对齐,且在我方测试环境创建视图时,对应字段数据类型保持为CHAR(12)。视图创建SQL如下:
CREATE OR REPLACE EDITIONABLE VIEW "ACV_AC_DOSE_ACT" ("EXPID", "DATE_IN", "DATE_OUT", "RWP_NUMBER", "REV_NUMBER", "DOSE_RATE", "ACCESS_TIME", "DDE_EDEX", "EDEX_FLAG", "SDE_SK", "ENTRY_STATION", "EXIT_STATION", "DRD_ID", "WORK_STEP_SEQ_NO", "WORK_DOC", "ESCORT_FLAG", "ESCORTED_BY") AS select a.expid, a.date_in, a.date_out, a.rwp_number, b.rev_number, a.dose_rate, a.access_time, a.dde, null, a.sde_sk, a.entry_station, a.exit_station, a.drd_id, b.work_step_seq_no, b.work_doc, b.escort_flag, b.escorted_by from acd_active a LEFT JOIN acd_active_supl b ON (a.expid = b.expid) and (a.date_in = b.date_in) AND NOT EXISTS (SELECT * FROM edd_mb_rca_active c WHERE c.expid = a.expid AND c.date_in = a.date_in ) UNION ALL select expid, date_in, date_out, rwp_number, rev_number, null, access_time, sum_of_edex, 'x', null, entry_station, exit_station, 'MB', work_step_seq_no, work_doc_no, escort_flag, escorted_by from edd_mb_rca_active
已完成的排查与建议
- 确认客户环境与我方测试环境字符集均为
AL32UTF8 - 建议客户先删除视图再重建,而非使用
CREATE OR REPLACE替换操作 - 若
edd_mb_rca_active表无数据,建议先删除该表重建后再创建视图,目前正等待客户反馈
内容的提问来源于stack exchange,提问作者JCDeTurk
相关产品推荐
相关产品推荐

