Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: importeren tot een spatie
Prev Next
You are not authorized to post a reply.

Author Messages
joeri frankenUser is Offline

Posts:2

13-11-2007 16:51:05 Alert 

ik wil data importeren vanuit een tekstbestand naar een tabel in sql server2000. probleem is dat de kolom die ik wil importeren data bevat als '2.1121 C DEG' of '0 % RH'
De kolom in de doeltabel moet een float worden die alleen het numerieke deel overneemt. Dus alles importeren tot de spatie. De waarde is namelijk de ene keer 2 getallen achter de komma, andere keer geen of juist 8.

iemand een idee?

Arjan FraaijUser is Offline

Posts:110

13-11-2007 19:59:28 Alert 
Joerif:

SELECT SUBSTRING('2.1121 C DEG',1,CHARINDEX(' ','2.1121 C DEG' )-1)
Result = 2.1121

SELECT SUBSTRING('0 % RH',1,CHARINDEX(' ','0 % RH' )-1)
Result = 0

Hierbij ga je er wel vanuit dat een spatie de eerste delimter is na de numerieke waarde.
Wellicht dat je eerst de volledige text bestand naar een tussentabel moet laden.

Gr,
Arjan
joeri frankenUser is Offline

Posts:2

14-11-2007 09:39:01 Alert 
dit zijn wel maar voorbeelden van welke waarden er zijn. bestaat er ook iets van een algemene import tot spatie?

wel bedankt voor je eerste moeite!

~gr joeri
Arjan FraaijUser is Offline

Posts:110

14-11-2007 14:16:24 Alert 
Je kan natuurlijk in de package een spatie opgeven als column delimiter. Echter ik neem ik even voor het gemak aan dat de input file uit meerdere kolommen bestaat bijvoorbeeld gescheiden in een CSV bestand.

Dan is er geen standaard voor het inlezen tot een spatie zover ik weet. Het gegeven voorbeeld SUBSTRING(,1,CHARINDEX(' ',)-1) leest alles tot de eerste spatie ongeacht wat voor een gegevens bevat:

SUBSTRING('Dit is een test',1,CHARINDEX(' ','Dit is een test')-1) geeft Dit als resultaat.

Wellicht dat iemand anders wel een andere methodiek weet.
Hugo KornelisUser is Offline

Posts:46

20-11-2007 11:53:37 Alert 
Posted By joeri franken on 13-11-2007 16:51:05

ik wil data importeren vanuit een tekstbestand naar een tabel in sql server2000. probleem is dat de kolom die ik wil importeren data bevat als '2.1121 C DEG' of '0 % RH'
De kolom in de doeltabel moet een float worden die alleen het numerieke deel overneemt. Dus alles importeren tot de spatie. De waarde is namelijk de ene keer 2 getallen achter de komma, andere keer geen of juist 8.

iemand een idee?



Hoi Joeri,

Ik denk dat de beste aanpak is om eerst te importeren (met bcp of met een SSIS task) als character kolom in een staging table. Daarna kan je dan het deel tot aan de eerste spatie converteren naar float met de techniek die Arjan gepost heeft:


Met vriendelijke groeten,

Hugo Kornelis (SQL Server MVP)
Hugo KornelisUser is Offline

Posts:46

20-11-2007 11:55:06 Alert 
Oeps, sorry. Iets te snel submit geklikt. Ik wilde dit er nog bij zetten:


SELECT CAST(SUBSTRING(KarakterKolom,1,CHARINDEX(' ',KarakterKolom)-1) AS float)
FROM   StagingTable;


Met vriendelijke groeten,

Hugo Kornelis (SQL Server MVP)
You are not authorized to post a reply.
Forums > Forums > Ontwikkelen > importeren tot een spatie



ActiveForums 3.6
  
Copyright (c) 2012 PASS Nederland   Privacy Statement  Terms Of Use