2009-08-11 8 views
7

J'ai un ensemble de fichiers dans une bibliothèque sur un système AS/400/iSeries/System-I/quel-que-IBM-veut-que-je-appelle-ce-ci des jours pour lesquels je n'ai pas de DDS (créés en SQL je crois) mais auxquels j'aimerais ajouter des descriptions de champs. Je ne peux pas trouver un moyen de le faire sur le 400.Ajouter une description de zone à un fichier DB2/400

Est-ce que quelqu'un sait comment je peux ajouter la description du champ? Est-ce que mettre à jour directement SYSIBM.SQLCOLUMNS pour mettre COLUMN_TEXT en sécurité?

(Je ne recherche pas de réponses SQL générales ici, seulement des réponses spécifiques à DB2/400. Malheureusement, étant donné les renoms d'IBM sur cette plateforme et le nom très peu google-sélectionnable, il est presque impossible de trouver des réponses. en particulier pour prouver qu'il n'y a PAS de réponse) à de telles questions sans passer de temps à regarder la documentation volumineuse et impénétrable)

Répondre

13

Utilisez la commande LABEL SQL. Si vous utilisez la commande STRSQL en vert, vous pouvez l'inviter. La commande LABEL peut être utilisée pour définir à la fois le texte de la colonne et les en-têtes de colonne.

Voici un exemple d'utilisation de la commande LABEL pour donner du texte de colonne pour deux champs dans le fichier TESTFILE1. Les champs sont nommés FIELD1 et FIELD2 dans cet exemple:

LABEL ON COLUMN TESTFILE1 
(FIELD1 TEXT IS 'My Field 1 text', FIELD2 TEXT IS 'My Field 2 text') 

Voici un exemple d'utilisation de la commande LABEL pour donner en-têtes de colonnes qui apparaissent dans les résultats de la recherche:

LABEL ON COLUMN TESTFILE1 
(FIELD1 IS 'My field   Heading 1', 
FIELD2 IS 'My field   Heading 2') 

Lors de la création en-têtes de colonne , vous obtenez 60 caractères par domaine. Les 20 premiers caractères sont la ligne 1. La deuxième 20 caractères sont la ligne 2. Le troisième 20 caractères sont la ligne 3. Dans l'exemple ci-dessus, les rubriques sur le terrain ressemblerait à ceci:

My field  My field 
Heading 1 Heading 2
+0

vous venez de sauvegarder mon tush! – jlarson

+0

btw, le saviez-vous, ou était-ce quelque chose que vous avez cherché? et si vous avez levé les yeux, donnez-moi un indice sur votre méthodologie, car je suis toujours perplexe googling pour as400 trucs ... – jlarson

+0

C'est un mélange. J'ai jeté un coup d'œil dans la table des matières de la commande SQL, j'ai vu le mot clé LABEL et je me suis souvenu de l'avoir vu auparavant. Ma première exposition à ce mot clé est lorsque j'ai utilisé une API qui génère des DDL à partir de fichiers physiques AS/400 et les commandes LABEL générées par DDL. Le premier endroit où je vais pour ce genre de choses est le InfoCenter iSeries. Voici un lien vers la version V5R4: http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp Pour les détails et les échantillons, je suis juste allé dans STRSQL, j'ai créé une table et j'ai demandé Commandes LABEL. –

4

Comme un indice supplémentaire, vous pouvez utiliser iSeries Navigator pour obtenir l'instruction SQL pour ce fichier. Si vous lancez ce programme, connectez-vous à l'iSeries, allez à la base de données, allez dans les schémas, et allez aux tables, alors vous pouvez trouver votre fichier. Vous trouverez le bouton "Générer SQL" quelque part. Cela crée une instruction SQL exacte pour vous permettre de créer la table. Vous pouvez utiliser cette instruction SQL pour travailler avec cette table.

Pour vos questions, le "LABEL" d'une autre réponse est suffisant. Cette réponse est utile si vous voulez faire plus de choses, ce qui ne peut pas être fait avec ALTER.

Questions connexes