Solved

SQL BCP Script

Posted on 2013-10-23
3
797 Views
Last Modified: 2014-01-16
I'm using the following script and get an error saying " > was expected at this point"  and I can't figure out what's wrong with it ...  Variables are defined at the top of the batch file.

Thanks a million for any help ..

bcp "SELECT DISTINCT PM.vwGenPatInfo.Patient_Last_Name, PM.vwGenPatInfo.Patient_First_Name, PM.vwGenPatInfo.Patient_MI, PM.vwGenPatInfo.Patient_DOB, PM.vwGenPatInfo.Patient_Sex,

PM.vwGenPatInfo.Patient_Street1, PM.vwGenPatInfo.Patient_Street2,PM.vwGenPatInfo.Patient_City, PM.vwGenPatInfo.Patient_State, PM.vwGenPatInfo.Patient_Zip_Code,

PM.vwGenPatInfo.Patient_Home_Phone,PM.vwGenPatInfo.Patient_SSN, PM.vwApptDetail.Appointment_DateTime FROM %DBNAME%.PM.vwApptDetail INNER JOIN %DBNAME%.PM.vwGenPatInfo ON

PM.vwApptDetail.Patient_Number = PM.vwGenPatInfo.Patient_Number
WHERE (%DBNAME%.PM.vwApptDetail.Appointment_DateTime BETWEEN CONVERT(date, DATEADD(day, 1, GETDATE())) AND CONVERT(date, DATEADD(day, 4, GETDATE()))) AND (%DBNAME

%.PM.vwApptDetail.Status <> 'X') AND (%DBNAME%.PM.vwApptDetail.Patient_Number <> '300780')" queryout %CSVPATH%\appt.csv -S%SERVERNAME% -c -t^| -U%SQLLOGIN% -P%SQLPASSWORD%
0
Comment
Question by:jtbrown1111
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 26

Accepted Solution

by:
Chris Luttrell earned 500 total points
ID: 39596346
I get the error "> was unexpected at this time." if I have the quoted sql command split on more than one line.  Is that what is happening to you?  You can continue the command with the carrot ^ anywhere a space is allowed, but not inside the quoted string.
HTH, Chris
0
 
LVL 11

Expert Comment

by:John_Vidmar
ID: 39706018
In your example, if DBNAME contains trailing white-space (space, tab, newline) then that will mess up your dynamic-SQL.  Instead of building the SQL dynamically with command-script variable for database, use the -d option (I would also place the SQL in a file and use -i option).
usage: bcp {dbtable | query} {in | out | queryout | format} datafile
  [-m maxerrors]            [-f formatfile]          [-e errfile]
  [-F firstrow]             [-L lastrow]             [-b batchsize]
  [-n native type]          [-c character type]      [-w wide character type]
  [-N keep non-text native] [-V file format version] [-q quoted identifier]
  [-C code page specifier]  [-t field terminator]    [-r row terminator]
  [-i inputfile]            [-o outfile]             [-a packetsize]
  [-S server name]          [-U username]            [-P password]
  [-T trusted connection]   [-v version]             [-R regional enable]
  [-k keep null values]     [-E keep identity values]
  [-h "load hints"]         [-x generate xml format file]
  [-d database name]

Open in new window

0
 
LVL 26

Expert Comment

by:Zberteoc
ID: 39759420
Make sure your bcp command is on one line entirely. Also you can use != instead <>, just in case:

bcp "SELECT DISTINCT PM.vwGenPatInfo.Patient_Last_Name, PM.vwGenPatInfo.Patient_First_Name, PM.vwGenPatInfo.Patient_MI, PM.vwGenPatInfo.Patient_DOB, PM.vwGenPatInfo.Patient_Sex, PM.vwGenPatInfo.Patient_Street1, PM.vwGenPatInfo.Patient_Street2,PM.vwGenPatInfo.Patient_City, PM.vwGenPatInfo.Patient_State, PM.vwGenPatInfo.Patient_Zip_Code, PM.vwGenPatInfo.Patient_Home_Phone,PM.vwGenPatInfo.Patient_SSN, PM.vwApptDetail.Appointment_DateTime FROM %DBNAME%.PM.vwApptDetail INNER JOIN %DBNAME%.PM.vwGenPatInfo ON PM.vwApptDetail.Patient_Number = PM.vwGenPatInfo.Patient_Number WHERE (%DBNAME%.PM.vwApptDetail.Appointment_DateTime BETWEEN CONVERT(date, DATEADD(day, 1, GETDATE())) AND CONVERT(date, DATEADD(day, 4, GETDATE()))) AND (%DBNAME%.PM.vwApptDetail.Status <> 'X') AND (%DBNAME%.PM.vwApptDetail.Patient_Number != '300780')" queryout %CSVPATH%\appt.csv -S%SERVERNAME% -c -t^| -U%SQLLOGIN% -P%SQLPASSWORD%

Open in new window

0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

If you have heard of RFC822 date formats, they can be quite a challenge in SQL Server. RFC822 is an Internet standard format for email message headers, including all dates within those headers. The RFC822 protocols are available in detail at:   ht…
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question