2016-12-20 3 views
1

Je tente de créer une feuille de calcul Excel en utilisant le dernier SSDT dans Visual Studio 2015 en tant que projet/package SQL Server 2014. J'ai d'abord utilisé l'Assistant Importation/Exportation de données SQL Server pour exécuter et créer un package DTS qui émet une requête simple pour extraire des données d'une table de base de données SQL Server qui inclut une colonne DATETIME et l'exporter vers Excel, en conservant la colonne DATETIME comme DATE dans Excel.Assistant d'importation/exportation de données SQL Server vs DTExec pour Excel Dates

L'exécution du package DTS au cours de l'assistant crée correctement le fichier Excel avec la valeur de la colonne en tant que DATE. Mais lorsque je réexécute le package DTS que l'Assistant a enregistré dans le système de fichiers à l'aide de Visual Studio 2015 (en mode 32 bits) ou de toute version 32 bits de l'utilitaire DTExec, le fichier Excel est toujours créé avec la valeur de colonne TEXTE. La feuille Excel est créée en utilisant le type 'DateTime' et le type SSIS interne est DT_DBTIMESTAMP. J'utilise le pilote 32 bits Microsoft.ACE.OLEDB.12.0 car Office 2016 32 bits est installé sur mon poste de travail de développeur (bien que j'utilise probablement la version 64 bits sur le serveur de production).

Vous ne savez pas pourquoi la différence se produit lors de l'exécution à l'aide de l'assistant par rapport à l'exécution dans Visual Studio ou à l'aide de DTExec? Ça me rend fou!

Ou est-ce que quelqu'un a des approches différentes pour forcer cette colonne à être une DATE dans Excel?

Merci!

Bryan

Répondre

1

Exportation date enregistrements à exceller via SSIS seront toujours traités comme TEXT, sauf si vous avez des enregistrements fictifs dans votre feuille Excel déjà, importer alors que Excel juste après les lignes fictives. Supposons que vous ayez défini des lignes factices au format DATE

+0

Merci pour le commentaire. L'assistant crée-t-il ces enregistrements fictifs, qui ne sont pas inclus dans le package DTS qu'il crée? Est-ce ainsi que cela fonctionne mais l'exécution du package DTS créé ne fonctionne pas? Si oui, pourquoi ne vois-je pas les enregistrements fictifs dans le fichier de sortie? –

+0

probablement effectué en interne lors de l'utilisation du package DTS via le serveur sql, vous ne savez pas quelle est la logique interne utilisée pour traiter ces enregistrements, mais vous devez créer des lignes fictives avec un type de données spécifique avant de générer le même résultat. type de données dans SSIS. – LONG

+0

Pouvez-vous me diriger vers des échantillons en ligne? Je suppose que le fichier Excel doit être créé au préalable avec la ligne factice mais l'assistant crée le fichier. Je ne sais pas comment, cependant. Le package DTS a une instruction Prepare SQL qui émet une requête CREATE Table 'Sheet1' pour créer la feuille dans la feuille de calcul Excel. Cette instruction échoue si le fichier existe déjà avec cette feuille. Donc, je ne sais pas comment les dossiers fictifs seraient créés à l'avance. Et comment voulez-vous supprimer les enregistrements fictifs? –