quelle est le script a exécuter pour insérer n colonnes depuis une feuilles excel dans n colonnes d''une table sous sql server 2005??
Version imprimable
quelle est le script a exécuter pour insérer n colonnes depuis une feuilles excel dans n colonnes d''une table sous sql server 2005??
je cherche une solution plus simple de la forme:
:)Code:
1
2
3
4
5
6 SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0;Database=d:\test.xls;HDR=YES;IMEX=1', insert into matable 'SELECT * FROM [mafeuille$]')
bonjour
j'utilise ce script et j'ai le message d'erreur suivant
Code:
1
2
3 INSERT INTO dbo.ImportTest SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]
Msg*245, Niveau*16, État*1, Ligne*1
Échec de la conversion de la valeur nvarchar '68R' en type de données tinyint.
et dans le cas d'un autre fichiers il parrait que j'ai toujours un probleme avec la meme colonne (rubrique) déclaré varchar(10) dans la base de donnée
Msg*244, Niveau*16, État*1, Ligne*1
La conversion de la valeur nvarchar '1034' a dépassé une colonne INT1. Utilisez une colonne entière plus grande.
L'instruction a été arrêtée.
Dans le premier cas vous tentez d'insérer des caractères dans une colonne TinyInt votre SGBD préféré veille au grain et vous le fait savoir...
Dans le deuxième cas, votre SGBD, que vous aimez désormais un peu moins dit qu'on ne peut pas placer 1024 dans une colone Tinyint qui n'accepte les valeurs que jusqu’à 255...
oui mais la colonne en question est déclarée char(10)????j'utilise la version express de sql server 2005, est ce que cela à un rapport avec l'erreur??aussi les 2 erreurs sont liés à la même colonne.
Permettez moi d'en douter....Citation:
oui mais la colonne en question est déclarée char(10)
Le problème est que vous ne spécifiez pas les colonnes dans votre ordre INSERT...
Testez dans un premier temps en listant les colonnes dans le INSERT.
Au pire testez l'envois brut des données de votre classeur dans une table créee à la volée puis analysez l'ordre des colonnes générées:
Code:
1
2
3
4 SELECT * INTO dbo.TEST FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]
Par contre, je ne sais pas comment lui indiquer un encodage, il ne gère pas les accents. :roll:Code:
1
2
3
4
5
6
7
8 BULK INSERT CSVTest FROM 'c:\csvtest.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' )
Bonjour,
Si si, il gère les accents les même les caractères non latins.
Travaillant en Thaïlande, je fais cela assez régulièrement.
Avec l'aide de la documentation, on voit que l'on peut spécifier une page de codes avec l'option CODEPAGE.
La documentation consacrée à cette option vous pointe vers une autre page, qui donne la liste des pages de codes : à vous de choisir celle qui convient ;)
@++ ;)