【问题标题】:How to change charset of table/column - Oracle如何更改表/列的字符集 - Oracle
【发布时间】:2020-05-18 16:15:09
【问题描述】:

我有下表:

我可以将列 SCHEMA_ERD 的字符集更改为 UTF-8 吗?
如果不可能,也许我可以只更改该表的字符集?

谁能给我举个例子吗?
我想将表情符号保留在 SCHEMA_ERD 中,这就是为什么我需要将字符集更改为 UTF-8

【问题讨论】:

    标签: sql database oracle oracle11g


    【解决方案1】:

    据我所知,在Oracle 中,字符集是数据库的特性。这意味着您应该更改整个数据库的字符集(即您不能只为一个表(或列或架构)这样做。

    不过,您可以使用NVARCHAR2NCLOB,所以我建议您尝试一下。因为,改变字符集并不是那么简单的任务。

    【讨论】:

    • 那么.. NCLOB 会像 CLOB 但唯一的区别是我可以将我的表情符号放在里面?
    • 正如我所说,我建议你尝试一下。这比更改数据库的字符集要简单得多。或者,如果没有帮助,请查看将表情符号存储为 图像(在 BLOB 中)是否有帮助。
    • 好的,我将该类型更改为 NCLOB,现在一切正常,谢谢! :P
    【解决方案2】:

    发出此查询以查看数据库中可用的字符集

    select * from  nls_database_parameters
    where parameter in ( 'NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
    
    PARAMETER                 VALUE     
    ------------------------- ----------
    NLS_NCHAR_CHARACTERSET    AL16UTF16 
    NLS_CHARACTERSET          WE8ISO8859P1 
    

    NLS_CHARACTERSET 中的字符集用于普通 VARCHAR2

    NCHAR 字符集用于NVARCHAR2NCLOB

    没有您的DBA

    的支持,您没有其他机会

    但请注意,NCHAR 字符集通常设置为支持 UTF8UTF16,因此它应该适合您。

    【讨论】:

      猜你喜欢
      • 2020-02-06
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 2010-12-18
      • 2012-01-07
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      相关资源
      最近更新 更多