SQL SERVER 2005 comando bcp

venerdì 11 dicembre 2009 - 11.35

doremifa72 Profilo | Newbie

Salve,
ho utilizzato il seguente comando per copiare il contenuto di una tabella in un file excel:

exec master..xp_cmdshell 'bcp "select * from NomeTAbella" queryout D:\data_file.xls -c -C ansi -T -S mioServer'
all'interno di una procedura. Tutto ok eccetto per una cosuccia.
Ho una colonna CAP il cui contenuto è del tipo 96100, 00010 , 50016 e così via...
Il problema è che nel file excel, mi ritrovo nel caso di 00010 10, qualcuno sa dirmi come posso ovviare a ciò, sempre utilizzando il comando bcp o qualche altro comando ... per copiare contenuto tabella in file excel da dentro una procedura senza ricorrere ai SISS?!!

grazie in anticipo...

lbenaglia Profilo | Guru

>ho utilizzato il seguente comando per copiare il contenuto di
>una tabella in un file excel:
>
>exec master..xp_cmdshell 'bcp "select * from NomeTAbella" queryout
>D:\data_file.xls -c -C ansi -T -S mioServer'

Ciao Donatella,

Occhio che l'output NON sarà un file xls ma un file ASCII avente il tab come separatore di colonna ed il CRLF come fine riga.
BCP è in grado di generare esclusivamente file ANSI o UNICODE.
Inoltre il parametro "-C ansi " è errato in quanto -C (code page) accetta { ACP | OEM | RAW | code_page }.

>Ho una colonna CAP il cui contenuto è del tipo 96100, 00010 ,
>50016 e così via...
>Il problema è che nel file excel, mi ritrovo nel caso di 00010
>10, qualcuno sa dirmi come posso ovviare a ciò, sempre utilizzando
>il comando bcp o qualche altro comando ... per copiare contenuto
>tabella in file excel da dentro una procedura senza ricorrere
>ai SISS?!!
Che data type ha la colonna CAP?
Se è stringa gli zeri non significativi verranno correttamente esportati (verificalo aprendo il file ANSI con Notepad).

>grazie in anticipo...
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

doremifa72 Profilo | Newbie

la colonna CAP è un varchar(50) perchè in quel campo ho cap italiani e non... si è vero che usando il bcp e copiando il risultato della select in un file txt il cap lo mette per bene ma a me serve che il risultato sia copiato in un file excel e lì il CAP se è del tipo 00178 me lo ritrovo poi 178. Per quanto riguarda il -C ansi ho visto che funziona ... ansi dovrebbe corrispondere al code_page. Ho un campo Città contenente ad es. Cantù e se io non specifico questo -C ansi mi mette Cant__ anzichè Cantù. Hai qualche suggerimento...?
grazie,
donatella

lbenaglia Profilo | Guru

>la colonna CAP è un varchar(50) perchè in quel campo ho cap italiani
>e non... si è vero che usando il bcp e copiando il risultato
>della select in un file txt il cap lo mette per bene ma a me
>serve che il risultato sia copiato in un file excel
Non puoi usare bcp per generare files xls, ma come ho già scritto bcp è in grado di esportare i dati in file di testo ANSI o UNICODE.

>Per quanto riguarda
>il -C ansi ho visto che funziona ... ansi dovrebbe corrispondere
>al code_page.
Le code page sono numeriche mentre il literal "ansi" non lo è:
http://msdn.microsoft.com/en-us/library/ms186356.aspx

>Ho un campo Città contenente ad es. Cantù e se
>io non specifico questo -C ansi mi mette Cant__ anzichè Cantù.
>Hai qualche suggerimento...?
Non puoi usare bcp per generare file xls.
Utilizza i SSIS.

>grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

doremifa72 Profilo | Newbie

Altro modo per generare files excel che non siano i SISS? perchè ho delle select le cui colonne variano continuamente e con i SISS non so come aggiornare i Metadati... e per di più nelle mie tabelle i dati di tipo stringa sono varchar e quando utilizzo un SISS tutte le volte mi tocca utilizzare nel DAta Flow Task un Data Conversion altrimenti mi dà errore e visto che mi variano continuamnete per me è un po' un problema...
Donatella
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5