sql - ALTER 语句 : Why VARCHAR2(50 BYTE) instead of VARCHAR2(50 CHAR)?

标签 sql oracle character-encoding oracle11g

这个问题在这里已经有了答案:





varchar2(n BYTE|CHAR) default -> CHAR or BYTE

(2 个回答)


8年前关闭。




我执行了以下(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) .

我的问题是:
  • 为什么字节 而不是 CHAR?我做错了什么?
  • 如何将列的长度固定为 VARCHAR2(100 CHAR) ?
  • 最佳答案

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

    我应该执行:

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

    (注意 50 之后的额外 CHAR)

    关于sql - ALTER 语句 : Why VARCHAR2(50 BYTE) instead of VARCHAR2(50 CHAR)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136280/

    相关文章:

    php - 数据库、字符编码、PDF 和 XML

    php - 无法使用 ' 正确搜索数据库

    sql - 我如何在 Athena 中正确使用 sql 'case when'

    sql - 将换行符插入到 Excel 工作簿连接中嵌入的 SQL 查询中

    php - MySQL获取一组中每x分钟的列的平均值和总和

    sql - Oracle REGEXP_INSTR() 和 "a-z"字符范围与预期不匹配

    sql - 选择 id 出现在另一个表的列中的行

    sql - 如何在 where 子句中使用 NVL

    java - java连接数据库的驱动

    c - 在另一个字符集中对奇怪的字符进行 Urlen 编码