使用具有 varchar2(char) 的字段创建 Oracle 物化视图

问题描述 投票:0回答:1

我需要在oracle中创建一个物化视图。基表已经存在,并且在 MV 中,我只需提取一组字段。基表的字段为 VARCHAR2(CHAR),但当我创建 MV 时,它将字段视为 VARCHAR2(BYTE)。关于如何在 MV 中保持相同数据类型的任何线索?我尝试过在 DDL 中指定和不指定字段,但这两种方式都不起作用。我正在使用 Oracle 19c

代码:

CREATE MATERIALIZED VIEW MY_MV
as
select field1,field2,field3 from MY_TABLE;

代码:

CREATE MATERIALIZED VIEW MY_MV (field1, field2, field3)
as
select field1,field2,field3 from MY_TABLE;

一种方法是进行强制转换(field_name as varchar2(Char)),但是对于 50 个字段,我必须进行强制转换,这是默认行为吗?

oracle oracle19c materialized-views varchar2
1个回答
0
投票

它不应该改变基表的语义。您是否可能从远程数据库中提取数据?

尝试在会话中设置默认语义:

alter session set nls_length_semantics=CHAR;

然后创建你的 mview。

© www.soinside.com 2019 - 2024. All rights reserved.