2017-10-17 3 views
1

Disons que je l'ensemble de données suivant l'importation d'un fichier texte:SSIS - supprimer le caractère X à moins qu'il soit suivi par le caractère Y

Data 
-------------------- 
1,"John Davis","Germany" 
2,"Mike Johnson","Texas, USA" 
3,"Bill "The man" Taylor","France" 

Je cherche un moyen de supprimer tous les " dans les données, à moins qu'il est suivi ou précédé d'un ,.

Donc, dans mon cas, les données devraient être:

Data 
-------------------- 
1,"John Davis","Germany" 
2,"Mike Johnson","Texas, USA" 
3,"Bill The man Taylor","France" 

Je l'ai essayé avec le composant fichier tekst d'importation SSIS, mais qui donne une erreur lorsque je mets le séparateur de colonne pour ". Si je ne mets pas un délimiteur, il voit la virgule dans "Texas, Etats-Unis" comme un délimiteur divisé ....

Des suggestions/idées? Le fichier texte est trop volumineux pour le modifier manuellement pour chaque ligne, ce qui n'est pas une option.

+2

Remplacer tout », «à | (pipe ou autre) Ensuite, vous pouvez supprimer tous » dans le fichier et l'utilisation que | en tant que délimiteur de colonne. –

+0

Copiez les données dans Excel. Utilisez 'text to column' et choisissez la délimitation séparée par des virgules. Ensuite, vous pouvez facilement remplacer "" 'inutile en les remplaçant. –

Répondre

1

Bit d'un dérobade le dernier « » «mais:

Create table #test ([Data] nvarchar(max)) 

insert into #test values ('1,"John Davis","Germany"'   ) 
insert into #test values ('2,"Mike Johnson","Texas, USA"'  ) 
insert into #test values ('3,"Bill "The man" Taylor","France"') 

select replace(replace(replace(replace([Data],',"',',~'), '",','~,'),'"', ''),'~','"') + '"' 
from #test