gpt4 book ai didi

oracle - NVARCHAR 到 VARCHAR 之间的转换

转载 作者:行者123 更新时间:2023-12-05 08:01:17 43 4
gpt4 key购买 nike

我有一个 Oracle 数据库,其中所有字符列都定义为 NVARCHAR 或 NCHAR 或 NCLOB,使用字符集 UTF-16。

现在我想迁移到具有字符集 UTF-8 的新数据库。由于它可以存储 unicode 字符,我正在考虑是否能够导入转换列类型的数据。

我怀疑的原因是我知道我不能将 NVARCHAR2 列转换为 VARCHAR2 如果不为空。

执行导入的最佳选择是什么。如果我导入架构、修改列类型然后导入数据,数据泵会报错吗?

感谢

最佳答案

是的,datapump 不会对您提出的解决方案留下深刻印象。您需要在导入之后或导出之前使用 to_char() 或 cast( MYNVARCHAR2 as VARCHAR2 ) 来转换数据类型。据我所知,任何无法转换的字符都会变成 '?',因此您必须注意不要转换任何包含非英文字母字符的数据。

最简单的方法可能是将数据按原样导入不同的模式,然后在将数据复制到正确的、修改后的模式的同时转换数据。即

impdp remap_schema=myschema:tempschema

insert into myschema.mytable (select myprimarykey, to_char(mynvarchar2) from tempschema.mytable);

但这显然会占用数据库中两倍的空间。

关于oracle - NVARCHAR 到 VARCHAR 之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651426/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com