ALTER语句:为什么VARCHAR2(50 BYTE)而不是VARCHAR2(50 CHAR)?

Wit*_*eld 7 sql oracle character-encoding oracle11g

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

ALTER TABLE USERX.MY_TABLE MODIFY (LASTNAME VARCHAR2(50));
Run Code Online (Sandbox Code Playgroud)

它没有发生任何事故,但当我看到新Data Type专栏时,我看到:VARCHAR2(50 BYTE)而不是VARCHAR2(50 CHAR).

我的问题是:

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

Wit*_*eld 11

回答自己(感谢其他答案提供的提示):

我本应该执行:

ALTER TABLE USERX.MY_TABLE MODIFY (LASTNAME VARCHAR2(50 CHAR));
Run Code Online (Sandbox Code Playgroud)

(注意CHAR50后的额外费用)