Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2011, 22h50   #1
Candidat au titre de Membre du Club
 
Homme Mohamed Chaala
Consultant ERP
Inscription : décembre 2008
Messages : 46
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Chaala
Localisation : Algérie

Informations professionnelles :
Activité : Consultant ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2008
Messages : 46
Points : 13
Points : 13
Par défaut insert into depuis feuille excel vers table sous sql server 2005

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??
enstein8 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 04/10/2011, 23h11   #2
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
http://msdn.microsoft.com/en-us/libr...SQL.90%29.aspx
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 23h17   #3
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 467
Points : 2 467
Envoyer un message via Yahoo à zinzineti
Une procédure stockée existe pour ça
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 19h02   #4
Candidat au titre de Membre du Club
 
Homme Mohamed Chaala
Consultant ERP
Inscription : décembre 2008
Messages : 46
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Chaala
Localisation : Algérie

Informations professionnelles :
Activité : Consultant ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2008
Messages : 46
Points : 13
Points : 13
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$]')
enstein8 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 09/10/2011, 00h37   #5
Candidat au titre de Membre du Club
 
Homme Mohamed Chaala
Consultant ERP
Inscription : décembre 2008
Messages : 46
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Chaala
Localisation : Algérie

Informations professionnelles :
Activité : Consultant ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2008
Messages : 46
Points : 13
Points : 13
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.
enstein8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 21h50   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
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...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2011, 22h27   #7
Candidat au titre de Membre du Club
 
Homme Mohamed Chaala
Consultant ERP
Inscription : décembre 2008
Messages : 46
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Chaala
Localisation : Algérie

Informations professionnelles :
Activité : Consultant ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2008
Messages : 46
Points : 13
Points : 13
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.
enstein8 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/10/2011, 07h38   #8
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
oui mais la colonne en question est déclarée char(10)
Permettez moi d'en douter....

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$]
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 11h23   #9
Membre confirmé
 
Avatar de dacid
 
Homme
Inscription : juin 2003
Messages : 858
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2003
Messages : 858
Points : 260
Points : 260
Code :
1
2
3
4
5
6
7
8
BULK
INSERT CSVTest
FROM 'c:\csvtest.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
Par contre, je ne sais pas comment lui indiquer un encodage, il ne gère pas les accents.
__________________
David.
dacid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 16h21   #10
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
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

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h18.


 
 
 
 
Partenaires

Hébergement Web