je patine sur l'utilisation de bulk insert à partir d'un fichier txt , voilà
mon problème:
j'ai créé une table:
/****** Objet : Table [dbo].[Résidences] Date de génération du script :
01/14/2008 17:03:04 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U'))
DROP TABLE [dbo].[Résidences]
GO
CREATE TABLE [dbo].[Résidences](
[résidence] [nvarchar](64) NOT NULL,
[résidenceId] [bigint] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED
([résidenceId] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Objet : Index [IX_Résidences] Date de génération du script :
01/14/2008 16:41:35 ******/
CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences]
([résidence] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant :
IIIIIIIIIIII I I
IIII IIIIIII I
1929
2
2 MAISONS
chaque ligne se termine par CRLF
Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque
ligne
j'ai essayé :
BULK INSERT cabab.dbo.Résidences
FROM 'D:\BAB Résidences.txt'
WITH (
FIELDTERMINATOR = '\n',
ROWTERMINATOR = '\n'
)
GO
j'obtiens tout en erreur :
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de type
ou caractère non valide pour la page de codes spécifiée) pour la ligne 1,
colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de type
ou caractère non valide pour la page de codes spécifiée) pour la ligne 3,
colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de type
ou caractère non valide pour la page de codes spécifiée) pour la ligne 4,
colonne 2 (résidenceId).
etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le
contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne
"Résidence" de la table
je patine sur l'utilisation de bulk insert à partir d'un fichier txt , voilà mon problème:
j'ai créé une table: /****** Objet : Table [dbo].[Résidences] Date de génération du script : 01/14/2008 17:03:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U')) DROP TABLE [dbo].[Résidences] GO CREATE TABLE [dbo].[Résidences]( [résidence] [nvarchar](64) NOT NULL, [résidenceId] [bigint] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED ([résidenceId] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] ) ON [PRIMARY] GO /****** Objet : Index [IX_Résidences] Date de génération du script : 01/14/2008 16:41:35 ******/ CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences] ([résidence] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant : IIIIIIIIIIII I I IIII IIIIIII I 1929 2 2 MAISONS
chaque ligne se termine par CRLF Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque ligne
j'ai essayé : BULK INSERT cabab.dbo.Résidences FROM 'D:BAB Résidences.txt' WITH ( FIELDTERMINATOR = 'n', ROWTERMINATOR = 'n' ) GO
j'obtiens tout en erreur : Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 1, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 3, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 4, colonne 2 (résidenceId). etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne "Résidence" de la table
D'avance merci Philippe
Bonjour,
Tu dois utiliser l'option FORMATFILE pour préciser les colonnes que tu
importes du fichier.
BULK INSERT [résidences]
FROM 'c:data.txt'
WITH (
FORMATFILE='c:format.fmt')
"Philippe" <ph.boussaroque@Espace-NTIC.com> wrote in message
news:eExz5WtVIHA.4448@TK2MSFTNGP03.phx.gbl...
bonjour à tous,
je patine sur l'utilisation de bulk insert à partir d'un fichier txt ,
voilà mon problème:
j'ai créé une table:
/****** Objet : Table [dbo].[Résidences] Date de génération du script :
01/14/2008 17:03:04 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U'))
DROP TABLE [dbo].[Résidences]
GO
CREATE TABLE [dbo].[Résidences](
[résidence] [nvarchar](64) NOT NULL,
[résidenceId] [bigint] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED
([résidenceId] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Objet : Index [IX_Résidences] Date de génération du script :
01/14/2008 16:41:35 ******/
CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences]
([résidence] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant :
IIIIIIIIIIII I I
IIII IIIIIII I
1929
2
2 MAISONS
chaque ligne se termine par CRLF
Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque
ligne
j'ai essayé :
BULK INSERT cabab.dbo.Résidences
FROM 'D:BAB Résidences.txt'
WITH (
FIELDTERMINATOR = 'n',
ROWTERMINATOR = 'n'
)
GO
j'obtiens tout en erreur :
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 1, colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 3, colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 4, colonne 2 (résidenceId).
etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le
contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne
"Résidence" de la table
je patine sur l'utilisation de bulk insert à partir d'un fichier txt , voilà mon problème:
j'ai créé une table: /****** Objet : Table [dbo].[Résidences] Date de génération du script : 01/14/2008 17:03:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U')) DROP TABLE [dbo].[Résidences] GO CREATE TABLE [dbo].[Résidences]( [résidence] [nvarchar](64) NOT NULL, [résidenceId] [bigint] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED ([résidenceId] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] ) ON [PRIMARY] GO /****** Objet : Index [IX_Résidences] Date de génération du script : 01/14/2008 16:41:35 ******/ CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences] ([résidence] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant : IIIIIIIIIIII I I IIII IIIIIII I 1929 2 2 MAISONS
chaque ligne se termine par CRLF Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque ligne
j'ai essayé : BULK INSERT cabab.dbo.Résidences FROM 'D:BAB Résidences.txt' WITH ( FIELDTERMINATOR = 'n', ROWTERMINATOR = 'n' ) GO
j'obtiens tout en erreur : Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 1, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 3, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 4, colonne 2 (résidenceId). etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne "Résidence" de la table
D'avance merci Philippe
Philippe
Merci beaucoup, j'ai effectivement trouvé dans la doc SQL la description d'un fichier format. Je n'y avais pas prété attention.
Philippe
"Jean-Pierre Riehl" a écrit dans le message de news:
Bonjour,
Tu dois utiliser l'option FORMATFILE pour préciser les colonnes que tu importes du fichier.
BULK INSERT [résidences] FROM 'c:data.txt' WITH ( FORMATFILE='c:format.fmt')
je patine sur l'utilisation de bulk insert à partir d'un fichier txt , voilà mon problème:
j'ai créé une table: /****** Objet : Table [dbo].[Résidences] Date de génération du script : 01/14/2008 17:03:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U')) DROP TABLE [dbo].[Résidences] GO CREATE TABLE [dbo].[Résidences]( [résidence] [nvarchar](64) NOT NULL, [résidenceId] [bigint] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED ([résidenceId] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] ) ON [PRIMARY] GO /****** Objet : Index [IX_Résidences] Date de génération du script : 01/14/2008 16:41:35 ******/ CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences] ([résidence] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant : IIIIIIIIIIII I I IIII IIIIIII I 1929 2 2 MAISONS
chaque ligne se termine par CRLF Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque ligne
j'ai essayé : BULK INSERT cabab.dbo.Résidences FROM 'D:BAB Résidences.txt' WITH ( FIELDTERMINATOR = 'n', ROWTERMINATOR = 'n' ) GO
j'obtiens tout en erreur : Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 1, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 3, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 4, colonne 2 (résidenceId). etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne "Résidence" de la table
D'avance merci Philippe
Merci beaucoup,
j'ai effectivement trouvé dans la doc SQL la description d'un fichier
format.
Je n'y avais pas prété attention.
Philippe
"Jean-Pierre Riehl" <jean-pierre.riehl@bewise.fr> a écrit dans le message de
news: 02219D5E-7ADC-4540-91F6-E462FB6B3789@microsoft.com...
Bonjour,
Tu dois utiliser l'option FORMATFILE pour préciser les colonnes que tu
importes du fichier.
BULK INSERT [résidences]
FROM 'c:data.txt'
WITH (
FORMATFILE='c:format.fmt')
"Philippe" <ph.boussaroque@Espace-NTIC.com> wrote in message
news:eExz5WtVIHA.4448@TK2MSFTNGP03.phx.gbl...
bonjour à tous,
je patine sur l'utilisation de bulk insert à partir d'un fichier txt ,
voilà mon problème:
j'ai créé une table:
/****** Objet : Table [dbo].[Résidences] Date de génération du script :
01/14/2008 17:03:04 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U'))
DROP TABLE [dbo].[Résidences]
GO
CREATE TABLE [dbo].[Résidences](
[résidence] [nvarchar](64) NOT NULL,
[résidenceId] [bigint] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED
([résidenceId] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Objet : Index [IX_Résidences] Date de génération du script :
01/14/2008 16:41:35 ******/
CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences]
([résidence] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant :
IIIIIIIIIIII I I
IIII IIIIIII I
1929
2
2 MAISONS
chaque ligne se termine par CRLF
Je n'ai pas de caractère de split particulier si ce n'est la fin de
chaque ligne
j'ai essayé :
BULK INSERT cabab.dbo.Résidences
FROM 'D:BAB Résidences.txt'
WITH (
FIELDTERMINATOR = 'n',
ROWTERMINATOR = 'n'
)
GO
j'obtiens tout en erreur :
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 1, colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 3, colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 4, colonne 2 (résidenceId).
etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le
contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne
"Résidence" de la table
je patine sur l'utilisation de bulk insert à partir d'un fichier txt , voilà mon problème:
j'ai créé une table: /****** Objet : Table [dbo].[Résidences] Date de génération du script : 01/14/2008 17:03:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U')) DROP TABLE [dbo].[Résidences] GO CREATE TABLE [dbo].[Résidences]( [résidence] [nvarchar](64) NOT NULL, [résidenceId] [bigint] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED ([résidenceId] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] ) ON [PRIMARY] GO /****** Objet : Index [IX_Résidences] Date de génération du script : 01/14/2008 16:41:35 ******/ CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences] ([résidence] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant : IIIIIIIIIIII I I IIII IIIIIII I 1929 2 2 MAISONS
chaque ligne se termine par CRLF Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque ligne
j'ai essayé : BULK INSERT cabab.dbo.Résidences FROM 'D:BAB Résidences.txt' WITH ( FIELDTERMINATOR = 'n', ROWTERMINATOR = 'n' ) GO
j'obtiens tout en erreur : Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 1, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 3, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 4, colonne 2 (résidenceId). etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne "Résidence" de la table
D'avance merci Philippe
Philippe
bonsoir , malgré les lectures indiquées sur format, je n'y suis pas arrivé.
Le pourquoi de l'utilisation de ce bulk insert est lié àSql Express qui n'a pas les options d'importation comme dans la version std.
Cependant à force de chercher j'ai fini par trouver sur la version de sql express que je possede l'outil d'importation "dtswizard" à l'adresse C:Program FilesMicrosoft SQL Server90DTSBinn . et qui permet d'impoter un fichier text "flat file' la version de sql Express que j'utilise est "Microsoft SQL Server Management Studio Express 9.00.3042.00 " version Advanced
cela a réglé mon problème.
Philippe
"Jean-Pierre Riehl" a écrit dans le message de news:
Bonjour,
Tu dois utiliser l'option FORMATFILE pour préciser les colonnes que tu importes du fichier.
BULK INSERT [résidences] FROM 'c:data.txt' WITH ( FORMATFILE='c:format.fmt')
je patine sur l'utilisation de bulk insert à partir d'un fichier txt , voilà mon problème:
j'ai créé une table: /****** Objet : Table [dbo].[Résidences] Date de génération du script : 01/14/2008 17:03:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U')) DROP TABLE [dbo].[Résidences] GO CREATE TABLE [dbo].[Résidences]( [résidence] [nvarchar](64) NOT NULL, [résidenceId] [bigint] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED ([résidenceId] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] ) ON [PRIMARY] GO /****** Objet : Index [IX_Résidences] Date de génération du script : 01/14/2008 16:41:35 ******/ CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences] ([résidence] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant : IIIIIIIIIIII I I IIII IIIIIII I 1929 2 2 MAISONS
chaque ligne se termine par CRLF Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque ligne
j'ai essayé : BULK INSERT cabab.dbo.Résidences FROM 'D:BAB Résidences.txt' WITH ( FIELDTERMINATOR = 'n', ROWTERMINATOR = 'n' ) GO
j'obtiens tout en erreur : Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 1, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 3, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 4, colonne 2 (résidenceId). etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne "Résidence" de la table
D'avance merci Philippe
bonsoir ,
malgré les lectures indiquées sur format, je n'y suis pas arrivé.
Le pourquoi de l'utilisation de ce bulk insert est lié àSql Express qui n'a
pas les options d'importation comme dans la version std.
Cependant à force de chercher j'ai fini par trouver sur la version de sql
express que je possede l'outil d'importation "dtswizard" à l'adresse
C:Program FilesMicrosoft SQL Server90DTSBinn . et qui permet d'impoter
un fichier text "flat file'
la version de sql Express que j'utilise est "Microsoft SQL Server
Management Studio Express 9.00.3042.00 " version Advanced
cela a réglé mon problème.
Philippe
"Jean-Pierre Riehl" <jean-pierre.riehl@bewise.fr> a écrit dans le message de
news: 02219D5E-7ADC-4540-91F6-E462FB6B3789@microsoft.com...
Bonjour,
Tu dois utiliser l'option FORMATFILE pour préciser les colonnes que tu
importes du fichier.
BULK INSERT [résidences]
FROM 'c:data.txt'
WITH (
FORMATFILE='c:format.fmt')
"Philippe" <ph.boussaroque@Espace-NTIC.com> wrote in message
news:eExz5WtVIHA.4448@TK2MSFTNGP03.phx.gbl...
bonjour à tous,
je patine sur l'utilisation de bulk insert à partir d'un fichier txt ,
voilà mon problème:
j'ai créé une table:
/****** Objet : Table [dbo].[Résidences] Date de génération du script :
01/14/2008 17:03:04 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U'))
DROP TABLE [dbo].[Résidences]
GO
CREATE TABLE [dbo].[Résidences](
[résidence] [nvarchar](64) NOT NULL,
[résidenceId] [bigint] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED
([résidenceId] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Objet : Index [IX_Résidences] Date de génération du script :
01/14/2008 16:41:35 ******/
CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences]
([résidence] ASC)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant :
IIIIIIIIIIII I I
IIII IIIIIII I
1929
2
2 MAISONS
chaque ligne se termine par CRLF
Je n'ai pas de caractère de split particulier si ce n'est la fin de
chaque ligne
j'ai essayé :
BULK INSERT cabab.dbo.Résidences
FROM 'D:BAB Résidences.txt'
WITH (
FIELDTERMINATOR = 'n',
ROWTERMINATOR = 'n'
)
GO
j'obtiens tout en erreur :
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 1, colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 3, colonne 2 (résidenceId).
Msg 4864, Niveau 16, État 1, Ligne 1
Erreur de conversion des données à charger en bloc (incompatibilité de
type ou caractère non valide pour la page de codes spécifiée) pour la
ligne 4, colonne 2 (résidenceId).
etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le
contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne
"Résidence" de la table
bonsoir , malgré les lectures indiquées sur format, je n'y suis pas arrivé.
Le pourquoi de l'utilisation de ce bulk insert est lié àSql Express qui n'a pas les options d'importation comme dans la version std.
Cependant à force de chercher j'ai fini par trouver sur la version de sql express que je possede l'outil d'importation "dtswizard" à l'adresse C:Program FilesMicrosoft SQL Server90DTSBinn . et qui permet d'impoter un fichier text "flat file' la version de sql Express que j'utilise est "Microsoft SQL Server Management Studio Express 9.00.3042.00 " version Advanced
cela a réglé mon problème.
Philippe
"Jean-Pierre Riehl" a écrit dans le message de news:
Bonjour,
Tu dois utiliser l'option FORMATFILE pour préciser les colonnes que tu importes du fichier.
BULK INSERT [résidences] FROM 'c:data.txt' WITH ( FORMATFILE='c:format.fmt')
je patine sur l'utilisation de bulk insert à partir d'un fichier txt , voilà mon problème:
j'ai créé une table: /****** Objet : Table [dbo].[Résidences] Date de génération du script : 01/14/2008 17:03:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Résidences]') AND type in (N'U')) DROP TABLE [dbo].[Résidences] GO CREATE TABLE [dbo].[Résidences]( [résidence] [nvarchar](64) NOT NULL, [résidenceId] [bigint] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Résidences_1] PRIMARY KEY CLUSTERED ([résidenceId] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] ) ON [PRIMARY] GO /****** Objet : Index [IX_Résidences] Date de génération du script : 01/14/2008 16:41:35 ******/ CREATE NONCLUSTERED INDEX [IX_Résidences] ON [dbo].[Résidences] ([résidence] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] GO
le contenu du fichier TXT : BAB Résidences.txt est le suivant : IIIIIIIIIIII I I IIII IIIIIII I 1929 2 2 MAISONS
chaque ligne se termine par CRLF Je n'ai pas de caractère de split particulier si ce n'est la fin de chaque ligne
j'ai essayé : BULK INSERT cabab.dbo.Résidences FROM 'D:BAB Résidences.txt' WITH ( FIELDTERMINATOR = 'n', ROWTERMINATOR = 'n' ) GO
j'obtiens tout en erreur : Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 1, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 3, colonne 2 (résidenceId). Msg 4864, Niveau 16, État 1, Ligne 1 Erreur de conversion des données à charger en bloc (incompatibilité de type ou caractère non valide pour la page de codes spécifiée) pour la ligne 4, colonne 2 (résidenceId). etc...
Quelle(s) caractère(s) dois je indiquer pour charger la table?? , le contenu d'une ligne du fichier texte (hors CRLF) alimente la colonne "Résidence" de la table