?
Solved

SQL BCP Script

Posted on 2013-10-23
3
Medium Priority
?
825 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 27

Accepted Solution

by:
Chris Luttrell earned 2000 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 27

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

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

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

Composite queries are used to retrieve the results from joining multiple queries after applying any filters. UNION, INTERSECT, MINUS, and UNION ALL are some of the operators used to get certain desired results.​
It is possible to export the data of a SQL Table in SSMS and generate INSERT statements. It's neatly tucked away in the generate scripts option of a database.
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…

765 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