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).

私の質問は次のとおりです。

  1. なぜCHAR ではなくBYTEなのですか? 私は間違って何をしましたか?
  2. 列の長さを固定するにはどうすればよいVARCHAR2(100 CHAR)ですか?
4

1 に答える 1

15

自分自身に答える(この他の回答で提供されたヒントのおかげで):

代わりに実行する必要がありました:

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

CHAR( 50以降の余分に注意してください)

于 2013-02-28T13:12:40.237 に答える