Seguindo com os tipos de dados vamos entender os tipos de dados de caracteres, que basicamente são CHAR, NCHAR, VARCHAR2 e NVARCHAR2.
VARCHAR2
Destinado para armazenar cadeia de caracteres de forma variável, dever ser informado o tamanho do campo no momento da criação da coluna, por exemplo, VARCHAR2(n) onde o n indica a quantidade máxima de caracteres que poderá ser armazenada na coluna, esse valor tem um mínimo de 1 byte ou caractere e pode ter no máximo 32767 bytes ou caracteres no caso do parâmetro MAX_STRING_SIZE ter o valor igual a EXTENDED ou no máximo 4000 bytes no caso do parâmetro estar configurado com o valor igual a STANDARD.
Como o tamanho é variável, em uma coluna VARCHAR(10), por exemplo, podemos ter valores como abaixo:
'asd' -> Tamanho ocupado 3
'asdf12' -> Tamanho ocupado 6
'asdfg12345' -> Tamanho ocupado 10
NVARCHAR2
Funciona da mesma maneira que o tipo VARCHAR2, contudo o tipo NVARCHAR2 permite definir a forma de codificação da coluna entre AL16UTF16 OU UTF8. Essa configuração também altera os tamanhos máximos suportados nesse tipo de coluna.
Caso o parâmetro MAX_STRING_SIZE esteja com o valor STANDARD, a coluna irá suportar 2000 bytes para codificação AL16UTF16 e 4000 bytes para UTF8. Se o parâmetro estiver configurado para EXTENDED o tamanho suportado será de 16383 bytes para AL16URF16 e 32767 bytes para UTF8.
CHAR
Armazena caracteres (alfanuméricos) com tamanho fixo no campo, ou seja, caso a coluna esteva definida com tamanho 10 e for inserido no campo o valor 'asd' os outros 7 espaços serão ocupados com espaços em branco ficando armazenado como 'asd ' , sendo o mínimo 1 byte e o máximo 2000 bytes, na definição de uma coluna char devemos passar o tamanho do campo de acordo com a sintaxe char(n) onde n indica o tamanho em bytes. No exemplo citado acima em que coluna char(10), teríamos a coluna ocupada da seguinte maneira:
'asd ' -> Tamanho ocupado 10
'asdfg12 ' -> Tamanho ocupado 10
'asdfg12345' -> Tamanho ocupado 10
NCHAR
Assim como o CHAR, armazena caracteres alfanuméricos com tamanho fixo, contudo, pode variar de acordo com a codificação utilizada, assim como o NVARCHAR2. Quando não é informado na declaração o tamanho do campo ele assume o valor 1 como padrão. Os valores máximos são 1000 para codificação AL16UTF16 e 2000 caracteres para UTF8. Caso um valor CHAR tente ser armazenado em uma coluna NCHAR, o valor poderá ser aceito, pois o banco de dados fará uma conversão para o formato codificado na coluna NCHAR.
Fonte:
Nenhum comentário:
Postar um comentário