Question

Je suis en train de charger un fichier en utilisant la fonction d'importation de données SQL Server -. Annexant lignes à une table existante

my est créé comme table existante ceci:

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

Toutefois, lorsque la charge tente d'exécuter je vois les messages d'erreur suivants. Je crois que la question est autour de la colonne calculée « Geog » comme les charges de données bien quand je prends ceci de la définition de la table.

  

Erreur 0xC0202009: Flux de données Tâche 1:   Code d'erreur SSIS DTS_E_OLEDBERROR. Un   erreur OLE DB est produite. Code d'erreur:   0x80004005. Un enregistrement OLE DB est   disponible. Source: « Microsoft SQL   Server Native Client 10.0" Hresult:   0x80004005 Description: « Bien que   la lecture de la ligne actuelle de l'hôte, un   prématurée en fin de message était   rencontré - un flux de données entrant   a été interrompue lorsque le serveur   devrait voir plus de données. L'hôte   programme peut avoir pris fin. Assurer, garantir   que vous utilisez un client pris en charge   Interface de programmation d'applications   (API). ". (Importation SQL Server et   Assistant Exportation) Erreur 0xC0209029:   Flux de données Tâche 1: SSIS code d'erreur   DTS_E_INDUCEDTRANSFORMFAILUREONERROR.   La "entrée "Entrée de destination"(47)"   a échoué parce que le code d'erreur 0xC020907B   eu lieu, et la ligne d'erreur   disposition sur « entrée » Destination   Entrée « (47) » l'échec sur   Erreur. Une erreur est survenue sur le   objet spécifié de l'spécifié   composant. Il peut y avoir erreur   messages postés avant ceci avec plus   informations sur l'échec. (SQL   Serveur Assistant Importation et Exportation)    Erreur 0xc0047022: Flux de données Tâche 1:   SSIS code d'erreur   DTS_E_PROCESSINPUTFAILED. le   Procédé ProcessInput sur le composant   "Destination - load_school" (34)   a échoué avec le code d'erreur 0xC0209029   tandis que l'entrée de traitement « Destination   Entrée »(47). Le composant identifié   renvoyé une erreur à partir de la   Procédé ProcessInput. L'erreur est   spécifique au composant, mais la   l'erreur est fatale et provoquera des données   Tâche de flux pour arrêter l'exécution. Il peut   des messages d'erreur affichés avant cette   avec plus d'informations sur la   échec. (Importation SQL Server et   Assistant Exportation)

Était-ce utile?

La solution

Il semblerait que la présence d'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 pourrait être réduit à l'absence de soutien que SSIS a pour les types de données spatiales ou vers le bas à la façon dont les processus SQL Server la colonne calculée lors d'une insertion de lot.

De toute façon je devais créer une solution à mon problème et est venu avec les travaux suivants autour.

Dans mon package SSIS Je commence par la suppression de la colonne calculée qui est à l'origine des problèmes. Ensuite, je lance le processus de chargement de données Puis j'ajouter à nouveau la colonne calculée à la table en utilisant l'instruction ALTER.

Cela fonctionne très bien pour l'instant, même si elle pourrait causer des problèmes avec des données hors ligne lors d'un scénario d'exécution. Cependant, il devrait être assez simple pour résoudre ce problème.

Cela ne signifie pas que je devais créer un package SSIS plus complexe que la simple utilisation simple assistant « Importer des données » fournies par SQL Server, et je me sens encore un peu frustré de voir que je ne sais pas la cause réelle de ma question. Je viens de trouver un moyen de travailler autour d'elle et de progresser. Je serais toujours reconnaissant si quelqu'un pouvait indiquer pourquoi je voyais cet échec.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top