Avatar billede cool_code Nybegynder
02. november 2005 - 10:48 Der er 6 kommentarer og
2 løsninger

Filformat ved brug af DTS (Execute SQL Task)

Hej

Jeg har en DTS Package som laver en fil udfra en SQL query. Filen som den genererer er stort set ulæselig i "notepad" idet alt er smidt rodet.

Først kommer tabelnavnene og derefter det data der passer til query (ligesom om der ikke er linieskift imellem de ting der skrives i filen, men bare tab'er).

Hvordan får man et fornuftigt out-format på filindholdet? F. eks at tabelnavne blive skrevet først, linieskift og derefter første linie data, linieskift osv.

Følgende kode bruges:

DECLARE @str varchar(255)
SELECT
@str = 'isql -Q"select * from <tabelnavn>" -E -oc:\fil.txt'
EXEC master..xp_cmdshell @str

Håber der er nogen der kan hjælpe.
Avatar billede 0xffff Nybegynder
02. november 2005 - 11:14 #1
Inde i DTS pakken på Text File Destination ikonet. Højreclick, vælg properties.

Der kan du så vælge om første linie skal indeholde Column Names og hvordan kolonner skal være delimited. Dvs. Komma separeret, Tab separeret osv.
Avatar billede cool_code Nybegynder
02. november 2005 - 11:24 #2
Jeg har ikke kunne kunne få "Text File Destination" til at virke. Derfor har jeg gjort det med "Execute SQL Task" istedet. Jeg afventer lige om andre har erfaring med med mit specifikke problem inden jeg (igen) kaster mig ud i file destination.
Avatar billede cool_code Nybegynder
02. november 2005 - 13:26 #3
Det jeg ønsker skal f. eks se sådan ud i en fil:

tabelnavn1  tabelnavn2  tabelnavn3 [linieskift]
----------  ----------  ---------- [linieskift]
fornavn      efternavn    alder      [linieskift]
fornavn      efternavn    alder      [linieskift]
osv

Hvis jeg på selve tabellen i SQL Anaylizer skriver resultat til fil ser det fint ud.

Any clues????

lige nu ser den således ud:
tabelnavn1  tabelnavn2  tabelnavn3 ----------  ----------  ---------- fornavn      efternavn    alder fornavn      efternavn    alder
Avatar billede 0xffff Nybegynder
02. november 2005 - 13:55 #4
Som default er -w parameter i ISQL kommandoen sat til 80 chars.

Dvs. den laver linieskift efter 80chars.

Sæt forsøgsvis -w til et arbitrært stort nummer for at test om det evt. er det. Og hvis det er kan du så trimme den ned bagefter til den aktuelle længde på dine felter.
Avatar billede cool_code Nybegynder
02. november 2005 - 16:09 #5
Takker for hjælpen, det virkede
Avatar billede 0xffff Nybegynder
02. november 2005 - 16:19 #6
Velbekomme

Accepter du lige svar så?
Avatar billede cool_code Nybegynder
03. november 2005 - 16:28 #7
Yeps, Accepterer
Avatar billede cool_code Nybegynder
03. november 2005 - 16:28 #8
Sådan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester