Tedious: Erreur de chargement groupé dans une table temporaire

Créé le 16 nov. 2019  ·  7Commentaires  ·  Source: tediousjs/tedious

Vous rencontrez un problème lors de la tentative de chargement groupé dans une table temporaire :

Script de création de table temporaire :

CREATE TABLE ##DummyTable_Site ( [DimId] int NOT NULL, [Type] nvarchar(200), [Status] nvarchar(200), [Grp] nvarchar(200), [Cat] nvarchar(200), [Desc] nvarchar(500), [Name] nvarchar(200), [Cd] nvarchar(200) NOT NULL,[CRD] datetime2, [CUId] int, [DSId] int)

connection.newBulkLoad('##DummyTable_Site', { keepNulls: true }, ... );
... Columns and Rows added here
connection.execBulkLoad(bulkLoad);

Après avoir exécuté execBulkLoad en obtenant l'erreur ci-dessous

Erreur :
message : "Une erreur inconnue s'est produite. Cela est probablement dû au fait que le schéma de BulkLoad ne correspond pas au schéma de la table dans laquelle vous essayez d'insérer."

Idle

Tous les 7 commentaires

+1, lorsque j'essaie de mettre à jour une table existante avec une colonne supplémentaire, j'obtiens la même erreur. Des idées comment résoudre ce problème? Je n'ai rien trouvé dans la documentation 😔

@codethyme Pouvez-vous montrer votre code d'ajout de colonne et de ligne ? L'erreur peut indiquer que les colonnes et les lignes ajoutées ne correspondent pas à l'ordre des colonnes de la table temporaire

@mikalai-sokarau Les lignes et les colonnes ajoutées correspondent-elles aux colonnes du tableau ? Peut-être qu'un exemple de code pourrait être utile à regarder

Salut @mikalai-sokarau, je viens de parcourir brièvement la doc et j'ai trouvé qu'elle mentionnait en fait que le schéma pour ajouter des colonnes devait correspondre au schéma de la table d'origine. Cela peut en fait être la cause de votre erreur? http://tediousjs.github.io/tedious/bulk-load.html#function_addColumn

Salut, les gars, merci pour vos réponses et le lien vers la doc!
En effet, j'ai découvert que les schémas sont différents 😳
Est-il possible de modifier dynamiquement le schéma de la table (ajouter une colonne supplémentaire) avec une API fastidieuse ?
Ou peut-être que quelqu'un peut suggérer une approche standard pour effectuer cette manipulation ?

Vous pouvez essayer simplement d'utiliser une commande SQL régulière telle que

let sqlCommand = 'ALTER TABLE table_name ADD column_name datatype;'

Ensuite, en utilisant l'API fastidieuse habituelle connection.execSql(sqlCommand); . Voir si cela fonctionne?

Salut @IanChokS , merci beaucoup, ça m'a aidé !

@codethyme La solution ci-dessus fonctionne-t-elle également pour vous ? Fermant ceci pour l'instant.

Cette page vous a été utile?
0 / 5 - 0 notes