2014-06-25 2 views
1

J'ai beaucoup de données dans 2 bases de données différentes et dans de nombreuses tables différentes, je voudrais passer d'un ordinateur à quelques autres. Les autres ont la même définition du db: s. Notez que toutes les données ne doivent pas être transférées, seulement certaines que je définis. Certaines tables entièrement, et d'autres juste en partie.Dans OpenEdge, comment transférer facilement des parties de données dans la base de données?

Comment est-ce que je déplacerais ces données de la manière la plus facile? Pour vider chaque table et charger séparément dans de nombreux fichiers .d - n'est pas un moyen facile. Pourriez-vous faire quelque chose de similaire au fichier .df incrémental qui contient tout ce qui doit être changé?

Répondre

1

Le vidage (et le chargement) de tables entières est facile. Vous pouvez le faire à partir de l'interface graphique ou par ligne de commande. Regardez par exemple this l'entrée de la base de connaissances à propos de la ligne de commande & charger et this sur la création de scripts pour le vidage de la base de données entière.

Une partie des données est une autre histoire. Ceci est très individuel et dépend de votre base de données et de votre application. Il est difficile pour un outil générique de comparer des données et de déterminer si une différence de données dépend de données modifiées, de données ajoutées ou de données supprimées. Différentes bases de données ont différents types de mise en page, de clés et d'index.

Il existe cependant plusieurs commandes intégrées qui pourraient vous aider:

Par exemple:

IMPORT et EXPORT pour l'importation de données et l'exportation vers les fichiers, les cours d'eau, etc.

importation de base et à l'exportation

OUTPUT TO c:\temp\foo.data. 
FOR EACH foo NO-LOCK: 
    EXPORT foo. 
END. 
OUTPUT CLOSE. 

INPUT FROM c:\temp\foo.data. 
REPEAT: 
    CREATE foo. 
    IMPORT foo. 
END. 
INPUT CLOSE. 

BUFFER-COPY et pour copier et comparer des données entre des tables (et éventuellement des bases de données).

Vous pouvez également utiliser les commandes intégrées pour effectuer un "vidage", puis éditer manuellement les fichiers créés.

Progress Calling commandes intégrées

Vous pouvez appeler l'arrière qui déverse des données à partir des données d'administration. Cela vous demandera d'extraire ces fichiers .p de ses archives et de les appeler manuellement. Ceci exigera également que vous changiez PROPATHS etc. ainsi ce n'est pas simple. Vous pouvez également envisager de modifier les fichiers extraits selon vos besoins. Souvenez-vous que cela risque de casser lors de la mise à niveau de Progress, gardez vos modifications dans des fichiers séparés.

Regardez cette entrée Progress KB: Progress KB 15884

La meilleure façon pour vous dépend si cela est un temps ou reacurring tâche, la taille et la mise en page de base de données, etc.

+0

Alors, quel est le code pour l'importation aliments? (exporté de Data Administration) Après avoir fait un "POUR CHAQUE foo: DELETE foo. END." – LeoD3

+0

1) Utiliser l'administration des données pour charger les données. 2) Editer le fichier (Il contient des informations de fin qui commence par. [Newline] PSC etc et l'IMPORTER simplement.) 3) Ecrire un programme qui utilise IMPORT [table] mais ne tient pas compte des informations à la fin du fichier 4) Utilisation Dump binaire et charger à la place, cela peut être fait par une ligne de commande (commande PROUTIL). – Jensd

+0

Vous pourriez également regarder dans ceci: http://knowledgebase.progress.com/articles/Article/P57006?q = dumpspecified & l = en_US & fs = Search & pn = 1 (dumpspecified) – Jensd

Questions connexes