简体   繁体   中英

BCP Export from SQL to CSV File, Metadata, Header Row

I need to export data from an SQL table to CSV format. But I also need: 1. Metadata inserted in the first row of the output. This will be static. 2. Header row after the metadata. 3. Data. BUT I need fields with multiple values (eg name JOHN SMITH) to be in "" and commas within the quotes to separate the values within the field.

Here is my first draft to get data in CSV:

EXEC xp_cmdshell 'bcp "SELECT ITN_USER, SITE_ID, TICKET_NUMBER, VALIDATING_CARRIER_CODE, TICKET_EXPIRATION_DATE, TICKET_CURR_CODE, RESIDUAL_TOTAL_AMT, TICKET_TOTAL_FARE, PASSENGER_NAME, FIRST_ORIG_APT_CODE, FIRST_DEST_APT_CODE, FIRST_DEPART_DATE, TICKET_ISSUE_DATE, CRS_LOCATOR, TICKET_STATUS_ID, TICKET_TYPE, RSVN_SYS_ID, TICKETING_LOCATION, TICKET_BASE_FARE, TICKET_TAX, FARE_CALC_LINE FROM GDSX.dbo.UnusedTickets WHERE INSERT_DATE = ''01-31-2018''" queryout "C:\Users\Public\Documents\filename1_filename2_date.csv" /c /t, -T'

Any helpful tips or suggestions would be greatly appreciated.

This is what I want to achieve: “josh@gmail.com,vbear@gmail.com" ITN_USER,SITE_ID,TICKET_NUMBER,VALIDATING_CARRIER_CODE,TICKET_ EXPIRATION_DATE,TICKET_CURR_CODE,RESIDUAL_TOTAL_AMT,TICKET_TOT AL_FARE,PASSENGER_NAME,FIRST_ORIG_APT_CODE,FIRST_DEST_APT_CODE ,FIRST_DEPART_DATE,TICKET_ISSUE_DATE,CRS_LOCATOR,TICKET_STATUS _ID,TICKET_TYPE,RSVN_SYS_ID,TICKETING_LOCATION,TICKET_BASE_FAR E,TICKET_TAX,FARE_CALC_LINE vbear,abccorpus,0017845439769,AA,08MAY2009,USD,1226.57,1629.00 ,bear/vernon,MSY,ORD,17MAY2008,08MAY2008,,,electronic,,,,, jsmith,abccorpus,0167846739059,UA,19JUN2009,USD,354.00,354.00, smith/john,LAX,PDX,25JUN2008,19JUN2008,,,,,,,, dgarcia,abccorpmx,1327959759566,MX,03AUG2009,MXN,6828.06,6828. 06,garcia/diego,MEX,GUA,07AUG2008,03AUG2008,,,electronic,,,,,

Thanks!

Try Creating a view and use the view in your BCP statement. You can do all your calculation in the view. For metadata you need to do a union all with the data. SO your view will be something like...

Create view abc as 
   select 'Name' as Name, 'Age' as Age --Metadata 
      Union All
   Select Name , Cast(Age as Varchar(X)) from your table

make sure you give cast varchar for all the column as you will be doing union.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM