Nous avons une table dans Oracle 11g avec une colonne varchar2. Nous utilisons un langage de programmation propriétaire dans lequel cette colonne est définie comme une chaîne. Maximum, nous pouvons stocker 2000 caractères (4000 octets) dans cette colonne. Maintenant, l'exigence est telle que la colonne doit stocker plus de 2000 caractères (en fait, des caractères illimités). Les DBA n'aiment pas les types de données BLOB ou LONG pour des raisons de maintenance.Comment stocker des caractères illimités dans Oracle 11g?
La solution que je peux penser est de supprimer cette colonne de la table d'origine et d'avoir une table séparée pour cette colonne, puis de stocker chaque caractère dans une rangée, afin d'obtenir des caractères illimités. Ce tableau sera joint à la table d'origine pour les requêtes.
Y a-t-il une meilleure solution à ce problème? MISE À JOUR: Le langage de programmation propriétaire permet de définir des variables de type chaîne et BLOB, il n'y a pas d'option de CLOB. Je comprends les réponses données, mais je ne peux pas accepter les DBA. Je comprends que dévier de BLOB ou LONG sera le cauchemar des développeurs, mais ne peut toujours pas l'aider. MISE À JOUR 2: Si le maximum dont j'ai besoin est de 8000 caractères, puis-je ajouter 3 colonnes supplémentaires de sorte que j'aurai 4 colonnes de 2000 caractères chacune pour obtenir 8000 caractères. Ainsi, lorsque la première colonne est pleine, les valeurs seraient transférées à la colonne suivante et ainsi de suite. Ce design aura-t-il de mauvais effets secondaires? Veuillez suggérer.
Cela ressemble à une histoire DailyWTF se déroule sous nos yeux ... –
Eh bien, si vous dites à vos DBA que c'est ce que vous allez faire, alors je suis sûr qu'ils seraient prêts à reconsidérer BLOB ou LONG. Rien à éviter :) –
En tant que développeur junior, j'ai eu la même situation et j'ai été forcé d'utiliser une série de lignes nvarchar mappées l'une après l'autre. La logique d'insertion et de mise à jour était si complexe que la couche d'application prenait un mal de tête de maintenance bien pire que ce qu'aurait été la céphalée dba. – dkackman