Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Conjunto de caracteres Oracle JDBC e limite de 4000 caracteres


Antes do Oracle 12.1, um VARCHAR2 A coluna está limitada a armazenar 4.000 bytes de dados no conjunto de caracteres do banco de dados, mesmo que seja declarado VARCHAR2(4000 CHAR) . Como cada caractere em sua string requer 2 bytes de armazenamento no conjunto de caracteres UTF-8, você não poderá armazenar mais de 2.000 caracteres na coluna. Claro, esse número mudará se alguns de seus personagens realmente exigirem apenas 1 byte de armazenamento ou se alguns deles exigirem mais de 2 bytes de armazenamento. Quando o conjunto de caracteres do banco de dados é Windows-1252, cada caractere em sua string requer apenas um único byte de armazenamento para que você possa armazenar 4.000 caracteres na coluna.

Como você tem strings mais longas, seria possível declarar a coluna como um CLOB em vez de um VARCHAR2 ? Isso removeria (efetivamente) a limitação de comprimento (há um limite no tamanho de um CLOB que depende da versão do Oracle e do tamanho do bloco, mas está pelo menos na faixa de vários GB).

Se você estiver usando o Oracle 12.1 ou posterior, o max_string_size permite que você aumente o tamanho máximo de um VARCHAR2 coluna de 4.000 bytes a 32.767 bytes .