Je suis reading
data
d'une table de Sybase ASE 15.5
database
et inserting
qui data
de nouveau dans une autre cible Sybase ASE 15.5
database
. Toutes les données source
et destination
correspondaient à la place de la colonne timestamp
.comment restaurer la valeur `timestamp` dans Sybase ASE 15.5?
Comme ce que je sais à propos de la colonne timestamp
est qu'il met à jour automatiquement:
Chaque fois qu'une ligne contenant une colonne d'horodatage est inséré ou mis à jour, la colonne d'horodatage est mis à jour automatiquement. Une table peut avoir seulement une colonne du type de données d'horodatage. Une colonne nommée timestamp aura automatiquement l'horodatage du type de données système.
Par conséquent, quand je suis timestamp
que les données restaure de nouveau dans la base de données cible, il ne correspond pas à celle réelle.
Voici l'écran court au tableau Source
Voici l'écran court à destination Tableau
Comment restaurer la valeur exacte de la colonne d'horodatage?
Pour votre information:
J'utilise Apache Meta-model
pour interroger les données de la table source et restaurer les données de nouveau dans la base de données cible. As you can see timestamp is an array of bytes so I am extracting data as an array of bytes and restore it again as array of bytes but the value timestamp column is being changed when restore
.
La copie en bloc peut insérer n'importe quelle valeur valide dans une colonne d'horodatage. L'API de copie en bloc n'est pas disponible dans tous les environnements de programmation. en fait, dans très peu, peut-être seulement avec CT-lib Open Client natif en C. L'alternative est d'utiliser l'utilitaire bcp. Cela ne peut être réalisable que lorsque cela est fait très peu de fois dans les processus par lots, car l'utilisation de bcp nécessite la création d'un fichier par exécution bcp. bcp ne semble pas adapté à une application en ligne. – Corral