/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MSSQL] import-problemer fra Excel
Fra : Jens Gyldenkærne Cla~


Dato : 24-10-05 11:49

Jeg har gevaldige problemer med at få en import fra Excel til MSSQL
til at fungere efter hensigten.

Problemet er at MSSQL ikke kan lide blandede kolonner - hvor nogle
rækker af Excel opfattes som tekst og andre som tal.

Jeg har nogle (relativt) store excel-filer med persondata - bl.a.
postnumre og telefonnumre. Her er de fleste i sagens natur
numeriske (svarende til danske postnumre og telefonnumre), men en
del er ikke-numeriske. I databasen skal de selvfølgelig gemmes som
et tekstfelt, men jeg har svare problemer med at få
importfunktionen til at fungere korrekt.

Tidligere år har det været nok at sørge for at den første post
havde ikke-numeriske værdier i de problematiske felter, men det er
det ikke længere - nu får jeg de ikke-numeriske værdier ind fint,
men de numeriske (dvs. langt hovedparten) ignoreres helt (jeg får
NULL-værdier i stedet).

Jeg har prøvet at bruge DTS-transformations til at sikre at
felterne opfattes som tekst (Cstr(...)), men det har ingen effekt.
Så har jeg prøvet at bruge Excel-funktionen =TEKST(Feltnavn;0) -
det virker nogenlunde, men problemet er at det ændrer på flere
telefonnumre (+4630405060 bliver til 4630405060 og 0049102030
bliver til 49102030).

Er der nogen der kan komme med et guldkorn og fortælle mig hvordan
pokker man laver en import der fungerer? Jeg er ligeglad med om der
skal ændres i Excel-filen eller i import-specifikationen - bare jeg
ikke skal ind og rette hver enkelt post (ved fx at sætte ' ind
foran tallene).

Jeg håber på et hurtigt svar.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

 
 
Jens Gyldenkærne Cla~ (24-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-10-05 12:04

Jens Gyldenkærne Clausen skrev:

> Er der nogen der kan komme med et guldkorn og fortælle mig
> hvordan pokker man laver en import der fungerer?

Pt. er min løsning at importere via Access - der ikke har nogen
problemer med at importere blandede datatyper.

Jeg undrer mig dog en del over at en import der virker i
"husmandsprogrammet" Access, kan fejle i et dyrt enterprise-program
som MSSQL.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jesper Stocholm (24-10-2005)
Kommentar
Fra : Jesper Stocholm


Dato : 24-10-05 12:07

Jens Gyldenkærne Clausen <jens@gyros.invalid> wrote in
news:Xns96F98257719Djcdmfdk@gyrosmod.dtext.news.tele.dk:

> Er der nogen der kan komme med et guldkorn og fortælle mig hvordan
> pokker man laver en import der fungerer? Jeg er ligeglad med om der
> skal ændres i Excel-filen eller i import-specifikationen - bare jeg
> ikke skal ind og rette hver enkelt post (ved fx at sætte ' ind
> foran tallene).

Hvis du har mulighed for det, så kan du jo gemme dit Excel-ark som en CSV-
fil og importere den i stedet. Jeg har AALT for mange gange haft for mange
problemer med at importere direkte fra Excel, så hvis jeg har mulighed for
det, så går jeg CSV-vejen i stedet.



--
Jesper Stocholm
http://stocholm.dk

Findes din kiosk på nettet? Se http://ekiosk.dk

Jens Gyldenkærne Cla~ (24-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-10-05 12:27

Jesper Stocholm skrev:

> Hvis du har mulighed for det, så kan du jo gemme dit Excel-ark
> som en CSV- fil og importere den i stedet.

Udmærket forslag. Jeg mener dog at csv-importen kan give problemer
med tekst-felter med anførselstegn, men det er under alle
omstændigheder ikke i samme størrelsesorden som problemerne med
post- og telefonnumre.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Michael Zedeler (24-10-2005)
Kommentar
Fra : Michael Zedeler


Dato : 24-10-05 14:01

Jens Gyldenkærne Clausen wrote:
> Jesper Stocholm skrev:
>
>>Hvis du har mulighed for det, så kan du jo gemme dit Excel-ark
>>som en CSV- fil og importere den i stedet.
>
> Udmærket forslag. Jeg mener dog at csv-importen kan give problemer
> med tekst-felter med anførselstegn, men det er under alle
> omstændigheder ikke i samme størrelsesorden som problemerne med
> post- og telefonnumre.

Så brug en anden separator. F. eks. tabulator. Den bruges meget sjældent
og kan i de fleste tilfælde erstattet, de få gange, den optræder.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Peter Lykkegaard (24-10-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 24-10-05 20:13

"Jens Gyldenkærne Clausen" wrote

> Jeg har nogle (relativt) store excel-filer med persondata - bl.a.
> postnumre og telefonnumre. Her er de fleste i sagens natur
> numeriske (svarende til danske postnumre og telefonnumre), men en
> del er ikke-numeriske. I databasen skal de selvfølgelig gemmes som
> et tekstfelt, men jeg har svare problemer med at få
> importfunktionen til at fungere korrekt.
>
I den del hvor du vælger tables og/eller views har du tre rækker for hvert
object

Source, Destination samt Transform
Transform optræder som en grå knap, aktiver denne

I Columns mappings and Transformations kan du sætte op hvorledes din
destinations tabel skal opbygges
Vælg varchar/nvarchar samt størrelse efter behov

- Peter



Jens Gyldenkærne Cla~ (24-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-10-05 21:33

Peter Lykkegaard skrev:

> I Columns mappings and Transformations kan du sætte op
> hvorledes din destinations tabel skal opbygges
> Vælg varchar/nvarchar samt størrelse efter behov

Den mulighed kender jeg - og den har jeg også benyttet. Men det
hjælper bare ikke.

I det aktuelle eksempel importerede jeg en tabel med (bl.a.)
et postnummerfelt hvor de udenlandske postnumre stod først.
Felttypen blev automatisk valgt som nvarchar(255) - men da tabellen
var importeret, var samtlige numeriske postnumre blevet til NULL
(de udenlandske kom fint igennem).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Peter Lykkegaard (24-10-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 24-10-05 22:05

"Jens Gyldenkærne Clausen" wrote

> I det aktuelle eksempel importerede jeg en tabel med (bl.a.)
> et postnummerfelt hvor de udenlandske postnumre stod først.
> Felttypen blev automatisk valgt som nvarchar(255) - men da tabellen
> var importeret, var samtlige numeriske postnumre blevet til NULL

Weird?

Kan du smide et eksempel på en tre-fire rækker - evt udvalgte data (columns)
Bare som en CSV ting så kan jeg selv smide dem ind i Excel

Hvilken version af Excel bruger du (DK/US - 2000/2003)
Hvad er sproget på din maskine sat (kommaadskiller, tusindeseperator etc)

- Peter



Jens Gyldenkærne Cla~ (24-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-10-05 22:52

Peter Lykkegaard skrev:

> Kan du smide et eksempel på en tre-fire rækker - evt udvalgte
> data (columns) Bare som en CSV ting så kan jeg selv smide dem
> ind i Excel

Jeg har lagt en Excel-fil ud her:
<http://gyros.dk/usenet/temp/test.xls>

Der er lidt flere rækker (60), da jeg har på fornemmelsen at
problemet ikke opstår ved import af få rækker - det er dog ikke
noget jeg har testet.

Jeg har lige prøvet en simpel import - feltet teksttal får kun "S-
værdierne" - alle talværdierne droppes.

> Hvilken version af Excel bruger du (DK/US - 2000/2003)

Excel 2000, SP3, DK

> Hvad er sproget på din maskine sat (kommaadskiller,
> tusindeseperator etc)

Dansk, standardindstillinger mht. punktum/komma.

SQL-serveren er MSSQL 2000 SP3
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Peter Lykkegaard (27-10-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 27-10-05 07:47


Jens Gyldenkærne Clausen wrote:
>
> Jeg har lige prøvet en simpel import - feltet teksttal får kun "S-
> værdierne" - alle talværdierne droppes.
>
Bande svovle :)

Jeg havde ikke så megen tid i går aftes, men jeg har nogle ideer jeg
lige skal have prøvet af

I'll be back

- Peter


Peter Lykkegaard (03-11-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 03-11-05 16:28


Peter Lykkegaard wrote:
> Jens Gyldenkærne Clausen wrote:
> >
> > Jeg har lige prøvet en simpel import - feltet teksttal får kun "S-
> > værdierne" - alle talværdierne droppes.
> >
> Jeg havde ikke så megen tid i går aftes, men jeg har nogle ideer jeg
> lige skal have prøvet af
>
Bedre sent end aldrig :)
Konklusionen må være at "underlige" data skal prefixes med apostroph
i Excel for at det spiller

Når man eksportere fra MSSQL og datatyper er "forkerte" i forhold til
indhold så prefixes der automatisks med enkelt apostroph

I gamle dage (fx Excel 2.0) skulle man aktivt prefixe med enkelt
apostroph for at data i cellerne bliver behandlet som text

Hvorfor den ikke trækker data med over må være MS design beslutning
....

- Peter


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste