2013-02-28 11 views
5

I wykonywane następujące (Oracle 11g) SQL do wzrost istniejąca długość kolumny z VARCHAR2 (20 znaków) do VARCHAR2 (50 znaków):Instrukcja ALTER: Dlaczego VARCHAR2 (50 BYTE) zamiast VARCHAR2 (50 CHAR)?

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

Udało się bez incydentów, ale kiedy patrzę na nowa kolumna Data Type, widzę: VARCHAR2(50 BYTE) zamiast VARCHAR2(50 CHAR).

Moje pytania są następujące:

  1. Dlaczego BYTE i nie CHAR? Co zrobiłem niewłaściwie?
  2. Jak ustawić długość kolumny na VARCHAR2(100 CHAR)?
+3

Można znaleźć odpowiedź tutaj [varchar2 (n BYTE | CHAR) domyślnie -> CHAR lub BYTE] (http://stackoverflow.com/questions/7477564/varchar2n-bytechar-default-char-or-byte) –

+0

@ABCade Dziękujemy! Dostarczyło mi to wystarczających informacji, by wymyślić odpowiedź. Nie wiedziałem o tej domyślnej rzeczy. :) – Withheld

+1

Nie ma sprawy, nie zapomnij o udzieleniu odpowiedzi w [this] (http://stackoverflow.com/a/7477609/1083652) post –

Odpowiedz

9

Odpowiadając sobie (dzięki końcówce warunkiem by this other answer):

Powinienem był wykonywany zamiast:

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

(Uwaga dodatkowa CHAR po 50)

Powiązane problemy