2010-09-23 23 views
2

Lorsque retriving feuille Excel nommée région, il retourne les noms de colonnes parasitesrequête ODS à partir d'Excel retourne les noms de colonnes parasites

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "No value given for one or more required parameters.". 
Msg 7320, Level 16, State 2, Line 1 
Cannot execute the query "SELECT `Tbl1005`.`CUSTOMER` AS `Col1031`,`Tbl1005`.`NAME` AS `Col1032`,`Tbl1005`.` 1AA00` AS `Col1033`,`Tbl1005`.` 1AB00` AS `Col1034`,`Tbl1005`.` 1AC00` AS `Col1035`,`Tbl1005`.` 1AD00` AS `Col1036`,`Tbl1005`.` 1AE00` AS `Col1037`,`Tbl1005`.` 1AF00` AS `Col1038`,`Tbl1005`.` 1AG00` AS `Col1039`,`Tbl1005`.` 1AH00` AS `Col1040`,`Tbl1005`.` 1AL00` AS `Col1041`,`Tbl1005`.` 1AM00` AS `Col1042`,`Tbl1005`.` 1AN00` AS `Col1043`,`Tbl1005`.` 1AO00` AS `Col1044`,`Tbl1005`.` 1AP00` AS `Col1045`,`Tbl1005`.` 1AQ00` AS `Col1046`,`Tbl1005`.` 1ZA00` AS `Col1047`,`Tbl1005`.` 1ZD00` AS `Col1048`,`Tbl1005`.` 4AN00` AS `Col1049`,`Tbl1005`.` 4AO00` AS `Col1050`,`Tbl1005`.` 4ZB00` AS `Col1051`,`Tbl1005`.` 5ZA00` AS `Col1029` FROM `CPGROUPS` `Tbl1005`" against OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". 

Comment puis-je reslove cela?

Répondre

0

Les noms de colonne de codage dur ne sont pas une option pour moi car je ne connais pas le nombre de colonnes ni leurs noms avant la main. J'ai résolu le problème en spécifiant

Sélectionnez * dans OpenDataSource ('Microsoft.ACE.OLEDB.12.0', 'Source de données = "\ xxxx \ x.xls"; Extended Properties = "Excel 12.0; HDR = Yes; IMEX = 1" ') ... cpGroups

et Allow Inproc = True, niveau zéro seulement = 1 sur le fournisseur (ACE.Oledbb.12.0) dans le SQL Server

espoir que j'ai appris peut aider quelqu'un

Cordialement

1

J'ai reçu cette même erreur pour une requête sur dBase. L'erreur est provoquée en cliquant sur la limite de 255 colonnes pour le résultat de la requête à partir de OPENDATASOURCE. Je crois que le message est juste d'un appel interne pour SQL Server chargeant les résultats dans la mémoire et les analysant dans un jeu de résultats. Ils ne représentent pas les vrais noms de colonne ou tout ce qui est lié à la sortie finale.

J'ai résolu le problème dans mon cas en spécifiant une liste de colonnes codées en dur avec moins de 255 noms de champs au total.

1

Je suis tombé sur ceci avec une feuille qui avait pas sur la première rangée, utilisé comme nom de champ. La feuille de calcul a été installé en tant que serveur lié

Le message d'erreur était:

Msg 7320, Niveau 16, État 2, Ligne 1 Impossible d'exécuter la requête "SELECT Tbl1002Participant AS Col1019 DE DATASET$Tbl1002." Contre Fournisseur OLE DB "Microsoft.ACE.OLEDB.12.0" pour le serveur lié "XXXXX". Après que l'espace principal a été retiré, cela a fonctionné.

Le serveur lié a été installé à l'aide:

exec sp_addlinkedserver @server = N'XXXXX', 
@srvproduct=N'Excel', @provider=N'Microsoft.ACE.OLEDB.12.0', 
@datasrc=N'\\somewhere\some_dir\mysheet.xlsx', 
@provstr=N'EXCEL 12.0;Hdr=Yes' ; 
0

L'erreur se éloigna pour moi quand je l'ai enlevé des espaces plus grands noms de champ comme mentionné par @ Jim, soit en-têtes de colonne dans la feuille de calcul, mais aussi:

  • dupliquées noms de champs - je pense que ce fut le plus gros problème
  • Trailing noms de champs