2010-10-27 23 views
2

Je tente de charger un fichier à l'aide de la fonction d'importation de données SQL Server - ajout de lignes à une table existante.Utilisation de types spatiaux SQL Server dans la charge de données SSIS

ma table existante est créée comme ceci:

CREATE TABLE [dbo].[load](
    [Long] [varchar](50) NULL, 
    [Lat] [varchar](50) NULL, 
    [Geog] AS ([geography]::STGeomFromText(((('POINT('+[Long])+' ')+[Lat])+')',(4326))) 
) 

cependant lorsque la charge tente d'exécuter je vois les messages d'erreur suivants. Je crois que le problème est autour de la colonne calculée 'Geog' car les données se chargent bien quand je sors cette définition hors de la table.

Erreur 0xC0202009: de flux de données Tâche 1: SSIS Code d'erreur DTS_E_OLEDBERROR. Une erreur OLE DB s'est produite. Code d'erreur: 0x80004005. Un enregistrement OLE DB est disponible. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: « Alors que la lecture ligne actuelle de l'hôte, une fin prématurée de message était rencontré - un flux de données entrant a été interrompue lorsque le serveur que vous utilisez un client pris en charge interface de programmation d'application (API). ". (Importation SQL Server et Assistant d'exportation ) Erreur 0xc0209029: Tâche de flux de données 1: code d'erreur SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. La "entrée "Entrée de destination"(47)" a échoué parce que le code d'erreur 0xC020907B a eu lieu, et la ligne d'erreur disposition sur "entrée "Destination entrée"(47)" indique l'échec en cas d'erreur . Une erreur s'est produite sur l'objet spécifié du composant spécifié. Il peut y avoir erreur messages postés avant cela avec plus d'informations sur l'échec. (SQL serveur Assistant d'importation et d'exportation) Erreur 0xc0047022: de flux de données Tâche 1: SSIS Code d'erreur DTS_E_PROCESSINPUTFAILED. La méthode ProcessInput sur le composant "Destination - load_school" (34) a échoué avec le code d'erreur 0xC0209029 lors du traitement de l'entrée "Destination Entrée" (47). Le composant identifié a renvoyé une erreur de la méthode ProcessInput . L'erreur est spécifique au composant, mais l'erreur est fatale et provoque l'arrêt de la tâche de données Data . Il peut y avoir messages d'erreur affichés avant ce avec plus d'informations sur l'échec . (Importation SQL Server et Assistant Exportation)

Répondre

2

Il semblerait que d'avoir une colonne calculée qui contient le type de géographie dans la définition n'est pas pris en charge (je l'ai essayé avec d'autres types, y compris le type de point et il a bien fonctionné) . Cela peut être dû à l'absence de prise en charge de SSIS pour les types de données spatiales ou à la façon dont SQL Server traite la colonne calculée lors d'une insertion par lots.

De toute façon, j'ai dû créer une solution à mon problème et suis venu avec le travail suivant.

Dans mon package SSIS, je commence par supprimer la colonne calculée qui provoque les problèmes. Ensuite, je lance le processus de chargement de données Ensuite, je rajoute la colonne calculée à la table en utilisant l'instruction ALTER. Cela fonctionne correctement pour le moment, bien que cela puisse causer des problèmes avec les données hors ligne pendant un scénario d'exécution. Cependant, il devrait être assez simple pour résoudre ce problème. Cela signifiait que je devais créer un package SSIS plus complexe que simplement utiliser l'assistant simple 'Importer des données' fourni par SQL Server, et je me sens toujours un peu frustré de ne pas connaître la cause réelle de mon problème. Je viens de trouver un moyen de contourner le problème et d'aller de l'avant. J'apprécierais toujours si quelqu'un pourrait indiquer pourquoi je voyais cet échec.

+0

Merci !!! J'ai lutté avec ça pendant environ 2 jours !!! – bporter