2013-02-28 39 views
5

我執行下面(的Oracle 11g)SQL語句增加從VARCHAR2(20 CHAR)現有列的長度爲VARCHAR2(50 CHAR):ALTER語句:爲什麼VARCHAR2(50 BYTE)而不是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)
+3

你可能會找到答案這裏[varchar2(n BYTE | CHAR)默認 - > CHAR或BYTE](http://stackoverflow.com/questions/7477564/varchar2n-bytechar-default-char-or-byte) – 2013-02-28 13:09:51

+0

@ABCade謝謝!這爲我提供了足夠的信息來提出答案。我不知道那個默認的東西。 :) – Withheld 2013-02-28 13:13:40

+1

不客氣,不要忘記在[這](http://stackoverflow.com/a/7477609/1083652)文章 – 2013-02-28 13:15:42

回答

9

回答自己(感謝頂端設有by this other answer):

我應該執行的,而不是:

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

(注意額外CHAR後50)

相關問題