pb transformation fichier DDS en Table SQL

IBM i, configuration, commandes, ...
Répondre
cpelizens
Messages : 15
Enregistré le : sam. 15 mars 2008, 11:18:19

pb transformation fichier DDS en Table SQL

Message par cpelizens »

Bonjour,
je tente de transformer un certain nombre de fichiers DDS en table SQL..
Je suis la méthode donnée par VOLUBIS (en résumé)
1-Conversion des fichiers physiques en tables SQL
2-Création d'un logique SDD ayant le même format que l'ancien physique
Cela fonctionne très bien sur certains fichiers le niveau de format du logique SSD étant bien le même que celui de l"'ancien" physique. les programmes fonctionnent toujours.
Mais si le fichier physique contient un champ de type VARLEN transformé en VARCHAR SQL le niveau de format du logique pointant sur la table SQL est différent de l'"ancien physique"....
Y a t il une option a indiquer sur la zone en VARCHAR SQL afin de retrouver le même niveau de format sur le logique SDD final ?
Quelqu'un a t il déjà rencontré ce problème ?
D'avance merci
claude

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Re: pb transformation fichier DDS en Table SQL

Message par cmasse »

VARLEN était-il utilisé avec un argument (lg mini) ?

si oui, compléter VARCHAR avec ALLOCATE ( https://www.ibm.com/support/knowledgece ... atypes.htm )
Christian Massé (Volubis.fr)

cpelizens
Messages : 15
Enregistré le : sam. 15 mars 2008, 11:18:19

Re: pb transformation fichier DDS en Table SQL

Message par cpelizens »

Bonjour,
Je me permet de revenir vers vous car je n'arrive pas à recréer le logique DDS de quelques fichiers avec le même identifiant de format. Alors que pour d'autres pas de problème, y compris avec des zones variables cette fois ci.
Une méthode qui fonctionne sans que je comprenne pourquoi
a) créer la nouvelle table SQL ("NOUVEAU")
b) renommer le fichier en **_OLD (FIC_OLD)
c) recopier les données dans la nouvelle table
c) créer le logique DDS comme suit
A UNIQUE
A R RFIC PFILE(NOUVEAU)
A FORMAT(FIC_OLD)
A K CLE

Comment est calculé l'identifiant de format quelles propriétés de zone influent sur ce calcul, comment les repérer ?
D'avance merci

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Re: pb transformation fichier DDS en Table SQL

Message par cmasse »

Voici ce que je trouve
The system assigns a unique level identifier for each record format when it creates the associated file. The system uses the following information to determine the level identifier
Record format name
Field name (10 char system name, not long alias) -> j'ai un doute sur ce point
Total length of the record format
Number of fields in the record format
Field attributes (for example, length and decimal positions)
Order of the field in the record format


https://stackoverflow.com/questions/509 ... p-changing
Christian Massé (Volubis.fr)

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Re: pb transformation fichier DDS en Table SQL

Message par cmasse »

voici ce que dit la doc IBM
The following DDS information has no effect on the level identifier and, therefore, can be changed without recompiling the program that uses the file:
TEXT keyword
COLHDG keyword
CHECK keyword
EDTCDE keyword
EDTWRD keyword
REF keyword
REFFLD keyword
CMP, RANGE, and VALUES keywords
TRNTBL keyword
REFSHIFT keyword
DFT keyword
CCSID keyword
Join specifications and join keywords
Key fields
Access path keywords
Select/omit fields
https://www.ibm.com/support/knowledgece ... oecffd.htm
Christian Massé (Volubis.fr)

cpelizens
Messages : 15
Enregistré le : sam. 15 mars 2008, 11:18:19

Re: pb transformation fichier DDS en Table SQL

Message par cpelizens »

Bonjour,

Je rencontre un problème lors de la transformation de fichiers DDS en tables SQL. Certains fichiers ont été modifiés afin d'jouter une colonne de type "Identity" via un alter table.
Lors de la création du logique pointant sur table SQL via le code suivant
A UNIQUE
A R RFIC PFILE(TABLE_SQL)
A FORMAT(FICHIER_DDS)
A K CLE
Le logique ainsi créé conserve le même identificateur de niveau de format que le fichier d'origine et un ajout de colonne dans la table SQL ne sera pas répercutée sur le logique.
Par contre l'identificateur de niveau de format sera différent si une colonne de type "Identity" était présente dans le fichier d'origine.
Le code suivant permet de conserver l'identificateur de niveau de format....
A UNIQUE
A R RFIC PFILE(TABLE_SQL)
A FORMAT(TABLE_SQL)
A K CLE
Mais un ajout de colonne sur la table sql sera répercutée sur le logique et viendra modifier l'identificateur de niveau de format.
Avez vous déjà rencontré ce problème ? Comment le contourner ?
D'avance merci

Répondre