• aaa

    Poznávačka krás Maďarska - toulání po severu 

  • CAT700

    Non-stop adventure závod přes Katalánsko - z Pyrenejí až k moři

  • Toulání Šumavou
    Toulání Šumavou

    Extrémní non-stop MTB závod

  • 1000 miles
    1000 miles

    Non-stop extrémní adventure závod napříč Československem by Jan Kopka

  • Bohemia Divide 2019

    Non-stop bike packing závod 700km dlouhý z nejjižnějšího do nejsevernějšího místa ČR 

A A A

Dobrý večer pane Koutský,

potřebujeme, abyste nám znovu zaslal cca 1000 souborů, protože nedošlo k automatickému spárování se systémem. Seznam požadovaných souborů je v příloze.

 

TVL vážně? Je pátek 19:00 a ten adresář má 97 tisíc souborů, jak z toho mám vykopírovat 1049 souborů ?? 

Vždycky je řešení . Výpověď, přehodit to na kolegyni, ... A nebo si napsat skript pro SQL :-) 

 

Níže uvedený script počítá, že csv soubor má jeden sloupec s názvem souboru. Pro vícesloupcový soubor si jednoduše upravte temp tabulku, skript s více sloupci počítá (oodělovač, akorát název souboru musí být ve sloupci Soubor

 Pochopitelně musíte mít povolené a nakonfigurované použití XP_CMDSHELL a BULK INSERT

 

-- deklarace proměnných
DECLARE
@soubor nvarchar(50), 
@From nvarchar(50) = '\\ds02\atesty\', 
@To nvarchar(50) = '\\ds02\atesty\copy\',
@SQL nvarchar(500)

--vytvoreni pomocne tabulky
CREATE TABLE #TabImport (soubor nvarchar(50))

-- import z csv do pomocne tabulky
BULK INSERT #TabImport 
FROM '\\ds02\atesty\import.csv' 
	WITH (
	      FIELDTERMINATOR =',',
          ROWTERMINATOR ='\n',
	      FIRSTROW = 1,	
          CODEPAGE = 'ACP'
	     )        	

-- kolik to bude souboru? Řeší i duplicitu. Pro kontrolu
SELECT COUNT (DISTINCT(soubor)) FROM #TabImport

-- cyklus pro nazev souboru
DECLARE cur_vypocet CURSOR FOR
-- nacteni nazvu souboru z pom.tab					
SELECT DISTINCT(soubor) FROM #TabImport
-- otevreni kurzoru
OPEN cur_vypocet
FETCH NEXT FROM cur_vypocet INTO @soubor
WHILE @@FETCH_STATUS=0						
  BEGIN
     -- sestaveni prikazu pro kopii souboru
	 SET  @sql = 'copy ' + @From + @soubor + ' ' + @To + @soubor
	 -- zavolani procedury s parametrem kopirovani pro dany soubor
	 EXEC master.dbo.xp_cmdshell @SQL
	 -- pokracuj na dalsi soubor
    FETCH NEXT FROM cur_vypocet INTO @soubor
  END   
-- uzavreni kurzoru
CLOSE cur_vypocet 
-- uvolneni pameti
DEALLOCATE cur_vypocet

-- promazani pomocne tabulky
DELETE FROM #TabImport
-- zruseni tabulky
DROP TABLE #TabImport

 A jde se na pivo :-)

 

 

 

Search