Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [SQL / PL-SQL / SGBD] » [Résolu] Pb d'espaces non significatifs dans des varchar
Login Mot de passe

1 visiteurs sur ce topic (0 membre(s), 1 invité(s) )


Auteur
Sujet : [Résolu] Pb d'espaces non significatifs dans des varchar
Ixion
Vétéran
Membre # 5885

 Avatar du membre
Lieu : Rillettes'Land

Messages :
4740 (0.81 par jour)


Score :

Message du 25-09-2007 @ 17:39   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour,

J'ai un souci avec une table SQL de test. Elle est composée entre autre de données en varchar. Lorsque je charge cette table à l'aide d'un fichier texte via un BULK INSERT, les blancs en fin de zone sont présents dans la table. Or cette même table SQL en production avec le même format, même fichier texte d'alimentation et même fichier FMT, "supprime" les blancs non siginificatifs ! :yeux:

Y aurait-il un "paramètre" lors de la création de la table qui forcerait la suppression des blancs pour les varchar ?
D'ailleurs, la différence entre un char et un varchar n'est elle pas la suppression de ces blancs en fin de zone notamment ?

Je suis dans l'impasse... Si vous avez une idée, je suis preneur ;)

Merci d'avance.


[message édité le 02-10-2007 @ 17:49 Par Ixion]
----------
PC1 : P7P55 Deluxe | i7 870 | 12 Go DDR3 1600 CL8 | GTX 670 OC | Dell U2713HM 27" | SSD 840 Pro 256 | Altec ATP3 | S12 550W | Lian Li PC-G7 | MX1000 - Illuminated keyboard | MG5250 - Freebox v5 + Cisco RV110W + Netgear WNHDB3004
PC2 : P5K Pro | E8400 + NH-U12P | RAM 4 Go | eVGA 460 GTX | 22" LG IPS225V-BN | SSD C300 64Go + 1To F1 | Z305 | S12 550W | 69U6 Noir | Roccat Kova[+]
PC3 : PC-Q07 | Intel DG41AN | E4300 | 17" LG 1720B | 1 Go DDR2 Balistix | SSD C300 64Go | Logitech S510
Portable : T75L 10,6'' | 1,2ulv | 512Mo | SSD 64Go | Graveur DVD | 1,2 Kg
- Haut de page -
Ixion
Vétéran
Membre # 5885

 Avatar du membre
Lieu : Rillettes'Land

Messages :
4740 (0.81 par jour)


Score :

Message du 26-09-2007 @ 9:20   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Pas d'expert en base SQL dans l'coin... :(
----------
PC1 : P7P55 Deluxe | i7 870 | 12 Go DDR3 1600 CL8 | GTX 670 OC | Dell U2713HM 27" | SSD 840 Pro 256 | Altec ATP3 | S12 550W | Lian Li PC-G7 | MX1000 - Illuminated keyboard | MG5250 - Freebox v5 + Cisco RV110W + Netgear WNHDB3004
PC2 : P5K Pro | E8400 + NH-U12P | RAM 4 Go | eVGA 460 GTX | 22" LG IPS225V-BN | SSD C300 64Go + 1To F1 | Z305 | S12 550W | 69U6 Noir | Roccat Kova[+]
PC3 : PC-Q07 | Intel DG41AN | E4300 | 17" LG 1720B | 1 Go DDR2 Balistix | SSD C300 64Go | Logitech S510
Portable : T75L 10,6'' | 1,2ulv | 512Mo | SSD 64Go | Graveur DVD | 1,2 Kg
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23230 (3.57 par jour)


Score :

Message du 26-09-2007 @ 12:49   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

c'est pas une quesion de suppresion de blanc en fin de ligne ... heureusement d'ailleurs... un char 8 dans lequel tu met "a" donnera "a " apres un select. Dans un varchar ca donnera "a". mais si tu insere "a " da s un varchar tu récuperera "a ".



[message édité le 26-09-2007 @ 12:49 Par icy]
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
Ixion
Vétéran
Membre # 5885

 Avatar du membre
Lieu : Rillettes'Land

Messages :
4740 (0.81 par jour)


Score :

Message du 26-09-2007 @ 13:15   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

erf' dans ce cas, je ne comprend pas pourquoi ma table en production n'a pas de blanc en fin de chaque donnée alors qu'en test il y en a, avec de ce que je vois, les mêmes procstoc, fichier d'alimentation et fichier .fmt.

N'étant pas DBA, juste "utilisateur", je ne vois pas ce qui cloche...

Le DBA n'avait pas d'idée non plus ce matin :(
----------
PC1 : P7P55 Deluxe | i7 870 | 12 Go DDR3 1600 CL8 | GTX 670 OC | Dell U2713HM 27" | SSD 840 Pro 256 | Altec ATP3 | S12 550W | Lian Li PC-G7 | MX1000 - Illuminated keyboard | MG5250 - Freebox v5 + Cisco RV110W + Netgear WNHDB3004
PC2 : P5K Pro | E8400 + NH-U12P | RAM 4 Go | eVGA 460 GTX | 22" LG IPS225V-BN | SSD C300 64Go + 1To F1 | Z305 | S12 550W | 69U6 Noir | Roccat Kova[+]
PC3 : PC-Q07 | Intel DG41AN | E4300 | 17" LG 1720B | 1 Go DDR2 Balistix | SSD C300 64Go | Logitech S510
Portable : T75L 10,6'' | 1,2ulv | 512Mo | SSD 64Go | Graveur DVD | 1,2 Kg
- Haut de page -
B2000
Administrateur
Membre # 185

 Avatar du membre
Lieu : France/Poitiers/juste à côté...

Messages :
9757 (1.47 par jour)




Message du 26-09-2007 @ 21:00   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

si des blancs en fin de ligne c'est de type char (allocation de place fixe), si pas de blanc c'est du varchar (allocation de place dynamique)

tu veux pas faire un 'describe' de table et donner le resultat ici ?
----------
Intel i5 8600K | Noctua NH-U14S | Asus Prime Z370-P | Ballistix Sport LT 16Go DDR4-2666MHz | PNY GeForce GTX 1060 XLR8 OC 6 Go | SAMSUNG 840 Pro 256Go | Western Digital WD Blue 1To | Sony AD-7280S | Corsair STRAFE RGB | Roccat Kova | SteelSeries QcK | Corsair Gaming Void USB | iiyama ProLite E2472HDD

Ryzen 7 1800x | MSI X370 Gaming Pro Carbon | 2x 8Go DDR4 | MSI GeForce 1060GTX 3Go | SAMSUNG 960Pro NVME 512Go | SAMSUNG 840 Pro 512Go | LG 34um95 3440x1440 34" | 2x SAMSUNG SyncMaster SA450 1920x1200 24" | Clavier Lenovo Ultraslim sans fil | Souris Logitech MX Anywhere 2

Lenovo T430s : i5 3320m | 2x8Go | Toshiba 120Go | station Mini Dock serie 3

Nexus 6 64Go Android 7.1.1 | Garmin Forerunner 720XT | Nikon COOLPIX S9200 + Transcend SDHC 8GB | Canon PIXMA IP4850 | ADSL Freebox Révolution

Pour dialoguer en live, le chat TTH ou par mIRC sur irc://porsche.webchat.org:6667/tt-hardware

Rejoignez la team EBuyClub TTH !!!

Un jour j'ai mangé une pomme...
- Haut de page -
Ixion
Vétéran
Membre # 5885

 Avatar du membre
Lieu : Rillettes'Land

Messages :
4740 (0.81 par jour)


Score :

Message du 26-09-2007 @ 23:26   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

B2000 a écrit

si des blancs en fin de ligne c'est de type char (allocation de place fixe), si pas de blanc c'est du varchar (allocation de place dynamique)


Donc quand on charge une donnée alpha par exemple 'TTH ' dans une colonne de type varchar(8) on devrait avoir 'TTH'. Or j'ai 'TTH ' dans ma table de test, alors que dans ma table de prod j'ai bien 'TTH'.

B2000 a écrit


tu veux pas faire un 'describe' de table et donner le resultat ici ?


Je te fais ça demain du boulot :smilejap:
----------
PC1 : P7P55 Deluxe | i7 870 | 12 Go DDR3 1600 CL8 | GTX 670 OC | Dell U2713HM 27" | SSD 840 Pro 256 | Altec ATP3 | S12 550W | Lian Li PC-G7 | MX1000 - Illuminated keyboard | MG5250 - Freebox v5 + Cisco RV110W + Netgear WNHDB3004
PC2 : P5K Pro | E8400 + NH-U12P | RAM 4 Go | eVGA 460 GTX | 22" LG IPS225V-BN | SSD C300 64Go + 1To F1 | Z305 | S12 550W | 69U6 Noir | Roccat Kova[+]
PC3 : PC-Q07 | Intel DG41AN | E4300 | 17" LG 1720B | 1 Go DDR2 Balistix | SSD C300 64Go | Logitech S510
Portable : T75L 10,6'' | 1,2ulv | 512Mo | SSD 64Go | Graveur DVD | 1,2 Kg
- Haut de page -
Ixion
Vétéran
Membre # 5885

 Avatar du membre
Lieu : Rillettes'Land

Messages :
4740 (0.81 par jour)


Score :

Message du 27-09-2007 @ 10:36   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Voici une table :

Citation

CREATE TABLE [VALEURS_CODIERS] (
[VCO_COD_ID] [char] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[VCO_CODE] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[VCO_LIBELLE] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[VCO_LG_CODE] [numeric](6, 0) NULL ,
[VCO_ORDRE_AFF] [numeric](6, 0) NULL ,
[VCO_CMP] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
CONSTRAINT [PK_VALEURS_CODIERS] PRIMARY KEY CLUSTERED
(
[VCO_COD_ID],
[VCO_CODE]
) WITH FILLFACTOR = 90 ON [PRIMARY] ,
CONSTRAINT [FK_COD_VCO] FOREIGN KEY
(
[VCO_COD_ID]
) REFERENCES [CODIERS] (
[COD_ID]
)
) ON [PRIMARY]
GO



Sa procstoc de chargement :

Citation

-- Valeurs_codiers
SET @ls_NomTable = 'Valeurs_codiers'
SET @ls_DataFile = @is_DataPath + '\' + @ls_NomTable + '.TXT'
SET @ls_FmtFile = @is_FmtPath + '\' + @ls_NomTable + '.FMT'
SET @ls_SqlRequete = N'BULK INSERT d02.' + @ls_NomTable + N' FROM ''' + @ls_DataFile + N''' WITH (FORMATFILE=''' + @ls_FmtFile + N''' , MAXERRORS=1, CHECK_CONSTRAINTS)'
PRINT ' Lancement Chargement table '+ @ls_NomTable + ' le ' + convert(char(19), getdate(), 120)
EXEC sp_executesql @ls_SqlRequete
IF @@ERROR = 0
BEGIN
PRINT ' ' + @ls_NomTable + left(replicate('.',30),25-len(@ls_NomTable)) + 'OK'+ ' le :' + convert(char(19), getdate(), 120)
END
ELSE
BEGIN
PRINT ' ' + @ls_NomTable + left(replicate('.',30),25-len(@ls_NomTable)) + 'KO le : ' + convert(char(19), getdate(), 120)
GOTO ERREUR
END




----------
PC1 : P7P55 Deluxe | i7 870 | 12 Go DDR3 1600 CL8 | GTX 670 OC | Dell U2713HM 27" | SSD 840 Pro 256 | Altec ATP3 | S12 550W | Lian Li PC-G7 | MX1000 - Illuminated keyboard | MG5250 - Freebox v5 + Cisco RV110W + Netgear WNHDB3004
PC2 : P5K Pro | E8400 + NH-U12P | RAM 4 Go | eVGA 460 GTX | 22" LG IPS225V-BN | SSD C300 64Go + 1To F1 | Z305 | S12 550W | 69U6 Noir | Roccat Kova[+]
PC3 : PC-Q07 | Intel DG41AN | E4300 | 17" LG 1720B | 1 Go DDR2 Balistix | SSD C300 64Go | Logitech S510
Portable : T75L 10,6'' | 1,2ulv | 512Mo | SSD 64Go | Graveur DVD | 1,2 Kg
- Haut de page -
B2000
Administrateur
Membre # 185

 Avatar du membre
Lieu : France/Poitiers/juste à côté...

Messages :
9757 (1.47 par jour)




Message du 01-10-2007 @ 17:26   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

sur quels champs tu bloques ?
----------
Intel i5 8600K | Noctua NH-U14S | Asus Prime Z370-P | Ballistix Sport LT 16Go DDR4-2666MHz | PNY GeForce GTX 1060 XLR8 OC 6 Go | SAMSUNG 840 Pro 256Go | Western Digital WD Blue 1To | Sony AD-7280S | Corsair STRAFE RGB | Roccat Kova | SteelSeries QcK | Corsair Gaming Void USB | iiyama ProLite E2472HDD

Ryzen 7 1800x | MSI X370 Gaming Pro Carbon | 2x 8Go DDR4 | MSI GeForce 1060GTX 3Go | SAMSUNG 960Pro NVME 512Go | SAMSUNG 840 Pro 512Go | LG 34um95 3440x1440 34" | 2x SAMSUNG SyncMaster SA450 1920x1200 24" | Clavier Lenovo Ultraslim sans fil | Souris Logitech MX Anywhere 2

Lenovo T430s : i5 3320m | 2x8Go | Toshiba 120Go | station Mini Dock serie 3

Nexus 6 64Go Android 7.1.1 | Garmin Forerunner 720XT | Nikon COOLPIX S9200 + Transcend SDHC 8GB | Canon PIXMA IP4850 | ADSL Freebox Révolution

Pour dialoguer en live, le chat TTH ou par mIRC sur irc://porsche.webchat.org:6667/tt-hardware

Rejoignez la team EBuyClub TTH !!!

Un jour j'ai mangé une pomme...
- Haut de page -
Ixion
Vétéran
Membre # 5885

 Avatar du membre
Lieu : Rillettes'Land

Messages :
4740 (0.81 par jour)


Score :

Message du 01-10-2007 @ 18:24   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

B2000 a écrit

sur quels champs tu bloques ?



Sur tous les champs varchar en fait. Par exemple, dans le champs VCO_CODE j'ai aujourd'hui en test 'CIVIL_____' (ou les "_" représente des blancs) alors qu'en prod j'ai 'CIVIL' sans les blancs pour compléter la zone.

Le DBA a vérifié les paramètres de création des tables, ils sont identiques en prod et en test... :( J'avais pensé à un SET ANSI_PADDING positionné différemment en prod et en test, mais apparemment ce n'est pas utilisé chez nous. Nous sommes donc dans l'expectative la plus complète.

Le batch de chargement est lancé à partir d'une session particulière. Le DBA doit vérifié s'il n'y aurait pas eu une modification d'un paramètre de ce côté, mais sans trop savoir quel paramètre serait en cause...

Si tu as une idée B2000, je suis preneur à 200% ;)
----------
PC1 : P7P55 Deluxe | i7 870 | 12 Go DDR3 1600 CL8 | GTX 670 OC | Dell U2713HM 27" | SSD 840 Pro 256 | Altec ATP3 | S12 550W | Lian Li PC-G7 | MX1000 - Illuminated keyboard | MG5250 - Freebox v5 + Cisco RV110W + Netgear WNHDB3004
PC2 : P5K Pro | E8400 + NH-U12P | RAM 4 Go | eVGA 460 GTX | 22" LG IPS225V-BN | SSD C300 64Go + 1To F1 | Z305 | S12 550W | 69U6 Noir | Roccat Kova[+]
PC3 : PC-Q07 | Intel DG41AN | E4300 | 17" LG 1720B | 1 Go DDR2 Balistix | SSD C300 64Go | Logitech S510
Portable : T75L 10,6'' | 1,2ulv | 512Mo | SSD 64Go | Graveur DVD | 1,2 Kg
- Haut de page -
Ixion
Vétéran
Membre # 5885

 Avatar du membre
Lieu : Rillettes'Land

Messages :
4740 (0.81 par jour)


Score :

Message du 02-10-2007 @ 17:46   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Résolu !

En fait, il manquait bien le SET ANSI_PADDING OFF lors de la création des tables... Tout devrait rentrer dans l'ordre en recréant les tables avec cette option !

----------
PC1 : P7P55 Deluxe | i7 870 | 12 Go DDR3 1600 CL8 | GTX 670 OC | Dell U2713HM 27" | SSD 840 Pro 256 | Altec ATP3 | S12 550W | Lian Li PC-G7 | MX1000 - Illuminated keyboard | MG5250 - Freebox v5 + Cisco RV110W + Netgear WNHDB3004
PC2 : P5K Pro | E8400 + NH-U12P | RAM 4 Go | eVGA 460 GTX | 22" LG IPS225V-BN | SSD C300 64Go + 1To F1 | Z305 | S12 550W | 69U6 Noir | Roccat Kova[+]
PC3 : PC-Q07 | Intel DG41AN | E4300 | 17" LG 1720B | 1 Go DDR2 Balistix | SSD C300 64Go | Logitech S510
Portable : T75L 10,6'' | 1,2ulv | 512Mo | SSD 64Go | Graveur DVD | 1,2 Kg
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.052 secondes