popieram kod, który ma poniżej deklaracji schematu: -varchar2 (n BYTE | CHAR) domyślne -> CHAR lub BYTE
create table sample (
id number Primary key,
username varchar2(100),
);
Spojrzałam na dokumentacji Oracle & VARCHAR2 posiada dwa tryby deklaracji varchar2 (n BYTE) i varchar2 (n CHAR), jeśli nie określiłem jawnie BYTE lub CHAR & po prostu zadeklaruję nazwę użytkownika varchar2 (500), to czy 500 bajtów zostanie przydzielonych lub 500 znaków?
Dzięki,
Czasami warto dodać, że ustawienie NLS_LENGTH_SEMANTICS char * nie będzie przezwyciężyć limit 4000 bajtów ** ** dla kolumny VARCHAR. –
na [this] (https://docs.oracle.com/cd/E24693_01/server.11203/e24448/initparams149.htm) strona zawiera: _ Ostrzeżenie: Oracle zdecydowanie zaleca, aby NIE ustawiać parametru NLS_LENGTH_SEMANTICS na CHAR w pliku instancji lub pliku parametrów serwera. Może to spowodować nieoczekiwane utworzenie przez wiele istniejących skryptów instalacyjnych kolumn z semantyką długości znaków, co spowoduje błędy w czasie wykonywania, w tym przepełnienie bufora._ Jak już powiedziałeś, prawie zawsze ma to na celu określenie długości znaków. To naprawdę mnie zniechęca. co powinienem wiedzieć, od czasu do czasu muszę zwiększyć rozmiar kolumny. – mkb
@mkb - Parametr można ustawić również na poziomie sesji. Ustaw parametr na poziomie sesji podczas definiowania obiektów, jeśli nie chcesz, aby było ustawione na poziomie instancji. Lub po prostu ustaw ją na poziomie instancji z powrotem do BYTE przed uruchomieniem skryptu instalacyjnego Oracle. –