2010-08-27 11 views
1

Oracle a-t-il une métadonnée de colonne pour stocker son libellé convivial imprimable? Dites que j'ai une colonne nommée prodDesc. Je voudrais être en mesure de tirer une étiquette de colonne tels que "Product Description" pour une utilisation dans les rapports de fin & pages Web. Je prévois également d'utiliser les méta-données de taille de colonne pour que, lorsque je génère un formulaire html, je puisse définir dynamiquement les paramètres size et maxlength pour la zone de saisie.Métadonnées Oracle pour stocker les titres/libellés de colonnes

Je me rends compte que je peux utiliser le mot-clé AS, mais j'ai besoin de le mettre à jour dans chaque instruction SQL, mais je préfère conserver les étiquettes de colonnes dans un emplacement. Un travail autour de pensée a été de dupliquer chaque table nommant chacun avec un _label ajouté et puis chacun aurait juste une rangée pour stocker des étiquettes de colonne. Mais cela semble excessif.

tblProduct 
tblProduct_label <--- same structure as tblProduct but the values 

BTW, Ceci est une application web java avec un back-end oracle.

EDIT: c'est un fichier xml exemple, je suis déjà maintenais pour toutes mes tables db ...

<schema> 
    <tableName>xtblPersonnel</tableName> 
    <tableTitle>Personnel</tableTitle> 
    <tableConstraints></tableConstraints> 

    <column> 
     <name>PID</name> 
     <type>VARCHAR2</type> 
     <size>9</size> 
     <label>Badge ID</label> 
    </column> 

    <column> 
     <name>PCLASS</name> 
     <type>VARCHAR2</type> 
     <size>329</size> 
     <label>Classification</label> 
    </column> 
<schema> 

Répondre

4

Depuis c'est une question de l'interface utilisateur, il est généralement traité dans la couche de présentation en gardant des cartes de paires nom/étiquette de colonne (généralement une carte par langue). Vous passez le nom de la colonne (ou une clé composée du nom de la table + le nom de la colonne, si nécessaire) dans la carte et récupérez l'étiquette. Si vous voulez les conserver dans la base de données, vous pouvez créer une table avec des colonnes pour le nom de la table, le nom de la colonne, l'ID de la langue et l'étiquette, puis créez vos cartes au démarrage ou les paressez.

+0

J'ai fait une modification à mon message. J'utilise le fichier xml pour d'autres choses et espérait pousser l'étiquette dans la base de données lors de la création de la table. J'étudierai en utilisant un hashmap de ma servlet à la vue/IU. – jeff

+0

Absolument oui. –

+0

OK donc dans mon jsp j'ai: <% java.util.HashMap lbl = (HashMap) request.getAttribute ("labels"); %> Alors où je veux un label: <% = ((HashMap) lbl.get ("shop_order")). Get ("label")%> Est-ce que c'est ce que vous pensiez? – jeff

3

Vous pouvez utiliser les informations contenues dans user_col_comments et user_tab_comments, qui sont stockées à la suite de l'émission de "COMMENT ON COLUMN ..." ou de "COMMENT ON TABLE ..." SQL.