【问题标题】:ALTER statement: Why VARCHAR2(50 BYTE) instead of VARCHAR2(50 CHAR)? [duplicate]ALTER 语句:为什么使用 VARCHAR2(50 BYTE) 而不是 VARCHAR2(50 CHAR)? [复制]
【发布时间】:2013-02-28 13:03:45
【问题描述】:

我执行了以下 (Oracle 11g) SQL 语句来增加现有列的长度从 VARCHAR2(20 CHAR) 到 VARCHAR2(50 CHAR):

ALTER TABLE USERX.MY_TABLE MODIFY (LASTNAME VARCHAR2(50));

它顺利地成功了,但是当我查看新的Data Type 列时,我看到:VARCHAR2(50 BYTE) 而不是VARCHAR2(50 CHAR)

我的问题是:

  1. 为什么是 BYTE 而不是 CHAR?我做错了什么?
  2. 如何将列的长度固定为VARCHAR2(100 CHAR)

【问题讨论】:

标签: sql oracle character-encoding oracle11g


【解决方案1】:

回答自己(感谢by this other answer提供的提示):

我应该执行:

ALTER TABLE USERX.MY_TABLE MODIFY (LASTNAME VARCHAR2(50 CHAR));

(注意50后的额外CHAR

【讨论】:

    猜你喜欢
    • 2019-06-29
    • 2018-01-08
    • 1970-01-01
    • 2019-11-26
    • 2017-09-25
    • 1970-01-01
    • 2015-02-21
    • 2016-12-08
    • 2019-11-14
    相关资源
    最近更新 更多