Krzysiek P.

Krzysiek P. informatyk

Temat: Import danych z Excela do tabeli MS SQL

Witam

Proszę o podpowiedź w jaki sposób zrealizować n.w ćwiczenie.

Celem ćwiczenia jest zaimportowanie do tabeli MS SQL rekordów na podstawie wybranych kolumn w arkuszu excel.
tzn w arkuszu znajdują się dwie kolumny z datami

1. DataOd
2. DataDO

Chciałbym odczytać kolumny z excela i dla każdego wiersza z arkusza w bazie zapisać tyle rekordów ile wynosi różnica w ilości dni między tymi datami.

Dostępne narzędzia

1. Integration Services
2. Procedury składane

Wykonałem już procedurę składowaną, która jednak dodaje pojedynczy rekord przy wywołaniu.

CREATE PROCEDURE xxx (@DataOd as varchar(9), @DateDo as varchar(9))
AS

DECLARE @inOD DATETIME ;
DECLARE @inDO DATETIME ;
DECLARE @Krok DATETIME ;

set @inOD = convert(datetime,@DataOd, 120)
set @inDO = Convert(datetime,@DateDo, 120);

set @Krok = @inOD

declare @ildni int

WHILE DATEDIFF(day,@krok,@inDO+1) > 0

BEGIN

IF (DATEPART(dw,@krok) < 6)
BEGIN

INSERT INTO ...............;

END

SET @krok = @krok + 1;

END
GO

będę wdzięczny za wszystkie sugestie i propozycję rozwiązania tego problemu.

konto usunięte

Temat: Import danych z Excela do tabeli MS SQL

a może jednak to:
http://akawn.com/blog/2012/01/query-and-update-an-exce...
Nikodem Dobrzański

Nikodem Dobrzański Architekt systemu,
BizTech Konsulting
S.A.

Temat: Import danych z Excela do tabeli MS SQL

W MS SQL masz takie narzędzie, jak SSIS. Jako narzędzie ETL (Extract, Transform, Load) bardzo łatwo i przyjemnie ładuje się dane, również z Excela.
Krzysiek P.

Krzysiek P. informatyk

Temat: Import danych z Excela do tabeli MS SQL

Witam

Dzięki za odpowiedź, lecz nie mam problemu z odczytaniem danych z Excela, gdyż do tego wykorzystuję paczki SSIS. W "DataFlow" odczytuję dane poprzez "Excel Source" i przekazuję je w parametrach do "OLE DB Command " w którym wywołuję procedurę składowaną xxx. Nie wiem czemu procedura nie działa poprawnie, gdyż zawsze dopisuje jeden rekord nawet jeśli między datami jest równia np 3 dni.
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

Temat: Import danych z Excela do tabeli MS SQL

Sugeruję:
1. zwiększenie zadeklarowanej wielkości zmiennych @DataOd i @DataDo do 10
2. usunięcie linii IF (DATEPART(dw,@krok) < 6)
Krzysiek P.

Krzysiek P. informatyk

Temat: Import danych z Excela do tabeli MS SQL

Dzięki wszystkim za podpowiedź, skorzystałem z linku Przemka i odpuściłem sobie procedurę składowaną oraz SSIS.
Wykonałem ładowanie do bazy z arkusza poprzez skrypt i działa super, więc temat do zamknięcia..

Następna dyskusja:

Import danych do tabeli mys...




Wyślij zaproszenie do