Similaire question, mais pour Oracle. Pourquoi ne pas vouloir toujours choisir VARCHAR (MAX)?VARCHAR (MAX) par rapport à VARCHAR (n) dans Oracle
Pourquoi?
Similaire question, mais pour Oracle. Pourquoi ne pas vouloir toujours choisir VARCHAR (MAX)?VARCHAR (MAX) par rapport à VARCHAR (n) dans Oracle
Pourquoi?
Parce que cela ne fonctionne pas dans Oracle! Vous pouvez déclarer toutes les colonnes comme VARCHAR2 (4000) si vous le souhaitez, mais il n'est pas recommandé par tous les moyens. Il n'y aura pas de différence dans le stockage ou la performance de la base de données, mais:
Probablement parce que Oracle
ne prend pas en charge VARCHAR(MAX)
.
VARCHAR
ne doit pas être utilisé du tout Oracle
.
Pour l'instant, c'est un synonyme de VARCHAR2
, mais il peut changer à l'avenir afin qu'il fasse la distinction entre une chaîne vide et un NULL
.
VARCHAR
est censé le faire, mais ne le fait pas dans les versions actuelles de Oracle
, et ne devrait donc pas être utilisé.
En Oracle
, la longueur maximale d'un VARCHAR2
est 4000
dans SQL
et 32767
dans PL/SQL
.
Pour des valeurs supérieures, vous devez utiliser CLOB
, mais c'est très différent d'un VARCHAR2
. Vous devez utiliser des méthodes spéciales pour y accéder, etc.
Depuis VARCHAR est ANSI SQL92 standart et VARCHAR2 n'est pas , Je ne suis pas d'accord "VARCHAR ne devrait pas être utilisé dans Oracle du tout." et "... mais cela pourrait changer dans les déclarations futures ...". –
@eyazici: De la documentation: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#sthref3784 * Pour éviter d'éventuels changements de comportement, utilisez toujours le type de données 'VARCHAR2' pour stocker des chaînes de caractères de longueur variable *. Le désaccord avec le manuel d'instructions n'est pas la chose la plus sage à faire, mais bien sûr c'est votre choix. Si vous voulez construire une application 'Oracle' qui risque de casser lors de la prochaine mise à niveau, l'utilisation de' VARCHAR' est définitivement une bonne solution. – Quassnoi
Non seulement les applications client, mais aussi PL/SQL. En outre, vous souhaitez examiner ce qui se passe lorsque vous souhaitez concaténer deux colonnes ensemble (par exemple pour formater une ligne d'adresse pour une enveloppe). –
@ Tony Andrews, Pourriez-vous fournir des exemples du type d'applications client qui le feront? – JohnOsborne
@CodeFlava Non, je ne peux pas –