2012-03-07 4 views
1

Je compare deux bases de données qui ont un schéma similaire. Les deux devraient prendre en charge les caractères Unicode.Char Vs Byte dans Oracle

Lorsque je décris la même table à la fois dans la base de données, db 1 montre tous les champs varchar avec carbonisation, (par exemple varchar(20 char)) mais les db2 montre sans char, (varchar(20)

le second schéma ne supporte qu'un seul octet/char.

Quand je compare nls_database_parameters et v$nls_parameters dans les deux bases de données tout son même.

quelqu'un pourrait me faire savoir quel peut être le changement ici?

+0

Ne sont-ils pas warchar2 pas varchar? –

+0

@San - Quel est le jeu de caractères de la base de données 'v $ nls_parameters'? Le jeu de caractères de la base de données est-il 'AL32UTF8'? Quel est le problème exactement? La sémantique 'CHAR' vs' BYTE' n'affecte pas les caractères qui peuvent être stockés dans une colonne. Ils peuvent influencer le nombre de caractères pouvant être stockés dans une colonne en fonction des caractères particuliers. –

Répondre

3

Avez-vous vérifié NLS_LENGTH_SEMANTICS? Vous pouvez définir la valeur par défaut sur BYTE ou CHAR pour les types CHAR/VARCHAR2.

Si ces paramètres sont identiques sur les deux bases de données, la table a peut-être été créée en la spécifiant explicitement de cette façon.