CLOB vs VARCHAR2 et existe-il d'autres alternatives?
Je suis à l'aide de DevArt de dotConnect et Entité Développeur pour mon application. J'ai créé les tables à l'aide de l'Entité Première fonctionnalité.
Je remarque que beaucoup de types de colonnes sont définies à CLOB. Je n'ai que l'expérience avec MySQL et Microsoft SQL server, donc je ne suis pas sûr à propos de l'utilisation CLOB pour l'application. J'ai fait un peu de lecture, et a trouvé que CLOB sont pour une grande partie des données.
Les questions sont:
- Est à l'aide de CLOB pour la plupart des domaines, tels que le sexe de l'internaute (qui devrait être un varchar (1) ) ou le nom complet, est-elle réalisable? Les étapes à suivre pour convertir un CLOB champ de VARCHAR2 exige l'abandon de la colonne puis re-création, et est buggé dans DevArt de l'Entité Explorer, donc je voudrais l'éviter si possible. Modifier: je viens de découvrir que si vous définissez une longueur maximale d'une chaîne de caractères automatiquement un VARCHAR2.
- Existe-il des équivalents de trésorerie pour TINYTEXT dans Oracle?
OriginalL'auteur Extrakun | 2011-04-20
Vous devez vous connecter pour publier un commentaire.
C'est une très mauvaise idée d'utiliser un CLOB type de données pour une colonne qui doit être VARCHAR2(1). Outre les frais généraux (qui sont en fait minimes, comme Oracle permettra de traiter inline CLOBs de < 4000 caractères VARCHAR2), nous devons toujours nous efforcer d'utiliser la représentation la plus exacte de nos données dans le schéma: c'est juste de la bonne pratique.
Cela semble vraiment comme un problème avec le DevArt outil, ou peut-être que votre compréhension de la façon de l'utiliser (pas d'infraction). Il devrait y avoir un moyen pour vous de spécifier le type de données d'une entité attribut et/ou un moyen de la cartographie de ces spécifications Oracle physique de types de données. Je m'excuse si cela semble un peu vague, je ne suis pas familier avec le produit.
Donc, c'est le problème de base:
On peut y remédier en utilisant DDL de modifier la structure de la table. Parce que le schéma a beaucoup de ces colonnes, il est utile d'automatiser le processus. Cette fonction supprime la colonne existante et recrée comme un VARCHAR2. Il offre la possibilité de migrer les données dans la colonne de CLOB à la VARCHAR2 colonne; vous n'avez probablement pas besoin de cela, mais il est là pour l'exhaustivité. (Ce n'est pas la qualité de la production de code - erreur de manipulation, la gestion des contraintes not NULL, etc)
Donc, nous allons changer cette colonne...
L'appel de cette procédure peut être automatisée ou script dans les façons habituelles.
OriginalL'auteur APC
À l'aide d'un CLOB pour quelque chose comme un
Gender
colonne serait, au minimum, être extrêmement rare. Si le DDL cet outil génère précise que le MÉTIER de données doivent être stockées intégrée plutôt que hors de la ligne, je ne m'attends pas à quelque horrible des problèmes de performances. Mais vous n'aurez probablement créer des problèmes pour les autres outils d'accès à la base de données qui ne gèrent pas les LOBs particulièrement bien.Il n'y a pas d'équivalent dans Oracle pour
Tinytext
dans MySQL. Un CLOB est un CLOB.OriginalL'auteur Justin Cave
Une solution plus simple est d'aller dans l'Explorateur de modèles -> Model.Magasin -> Tables/Vues, trouver le nécessaire colonne et modifier le type de ce champ à VARCHAR2.
Puis exécutez la mise à Jour de la Base de données à partir du Modèle de l'assistant pour conserver les modifications apportées à la base de données.
N'oubliez pas de mettre le MaxLength facette (toutefois, le problème c'est déjà corrigé dans la prochaine Beta build).
OriginalL'auteur Devart