DTS, pb insertion de null d'un fichier plat dans un format date SQ
Le
Anthony
J'ai développé un package dtsx permettant de mettre en place, à partir d'une
table SQL Serveur 2005, un fichier plât. La table contient un colonne de
format date avec des valeurs nulles.
La mise en place du fichier plât marche très bien.
Cependant, lors de l'opération inverse (lecture du fichier plât vers une
table identique à la source), le programme me génère une erreur pour
l'insertion des colonnes (au préalable nulle) au format date.
Comment résoudre ce conflit ?
Information : mon fichier plât dispose de l'encodage "Unicode".
Voici les erreurs généré par Microsoft Visual Studio 2005 :
[Insertion dans la table Users [359]] Error: An OLE DB error has occurred.
Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft
SQL Native Client" Hresult: 0x80004005 Description: "Invalid character
value for cast specification".
[Insertion dans la table Users [359]] Error: There was an error with input
column "DATE_MAJ" (659) on input "OLE DB Destination Input" (372). The column
status returned was: "Conversion failed because the data value overflowed the
specified type.".
[Insertion dans la table Users [359]] Error: The "input "OLE DB Destination
Input" (372)" failed because error code 0xC020907A occurred, and the error
row disposition on "input "OLE DB Destination Input" (372)" specifies failure
on error. An error occurred on the specified object of the specified
component.
[DTS.Pipeline] Error: The ProcessInput method on component "Insertion dans
la table Users" (359) failed with error code 0xC0209029. The identified
component returned an error from the ProcessInput method. The error is
specific to the component, but the error is fatal and will cause the Data
Flow task to stop running.
[DTS.Pipeline] Error: Thread "WorkThread0" has exited with error code
0xC0209029.
Cordialement,
--
Anthony
Développeur .NET
table SQL Serveur 2005, un fichier plât. La table contient un colonne de
format date avec des valeurs nulles.
La mise en place du fichier plât marche très bien.
Cependant, lors de l'opération inverse (lecture du fichier plât vers une
table identique à la source), le programme me génère une erreur pour
l'insertion des colonnes (au préalable nulle) au format date.
Comment résoudre ce conflit ?
Information : mon fichier plât dispose de l'encodage "Unicode".
Voici les erreurs généré par Microsoft Visual Studio 2005 :
[Insertion dans la table Users [359]] Error: An OLE DB error has occurred.
Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft
SQL Native Client" Hresult: 0x80004005 Description: "Invalid character
value for cast specification".
[Insertion dans la table Users [359]] Error: There was an error with input
column "DATE_MAJ" (659) on input "OLE DB Destination Input" (372). The column
status returned was: "Conversion failed because the data value overflowed the
specified type.".
[Insertion dans la table Users [359]] Error: The "input "OLE DB Destination
Input" (372)" failed because error code 0xC020907A occurred, and the error
row disposition on "input "OLE DB Destination Input" (372)" specifies failure
on error. An error occurred on the specified object of the specified
component.
[DTS.Pipeline] Error: The ProcessInput method on component "Insertion dans
la table Users" (359) failed with error code 0xC0209029. The identified
component returned an error from the ProcessInput method. The error is
specific to the component, but the error is fatal and will cause the Data
Flow task to stop running.
[DTS.Pipeline] Error: Thread "WorkThread0" has exited with error code
0xC0209029.
Cordialement,
--
Anthony
Développeur .NET

Poser une question


SET DATEFORMAT YMD par exemple.
A +
Anthony a écrit:
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
DATEFORMAT. Etant sous l'interface en design, je ne savais où mettre le code
pour changer le format.
Cependant, j'ai trouvé une solution à mon problème. Voici l'explication de
cette solution :
Dans le dataFlow qui me permet de lire et d'insérer les données, j'ai donc
un Data Flow Source définit comme Flat File Source.
En allant dans le menu "Edit...", il suffit de cocher dans le menu
Connection Manager l'option "Retain null values from the source as null
values in the data flow".
Cela marche donc très bien.
Cependant, je me demande si lorsque je disposerai d'une chaîne vide
(interprétée comme vide dans un fichier plât) ne va pas me transmettre la
valeur nulle dans la table de destination (alors que la table source
disposait de la valeur vide et non pas nulle).
Je vous remercie de l'attention que vous avez porter à ma question.
Cordialement,
--
Anthony
Développeur .NET
"Fred BROUARD" a écrit :
C'est tout le problme du défaut d'impédance des langages "ordinaires" vis à vis
des SGBDR et de SQL.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Seul un test pourra le confirmer.
La documentation de la propriété que tu cites est effectivement assez vague.
Personnellement je suis effectivement assez curieux de savoir comment cela
est interprété
Pourrais-tu faire le test et nous dire ce qu'il en est.
Merci d'avance
--
Avec mes meilleurs voeux 2006
Med Bouchenafa
"Anthony" news: