Feedback
 
Did this article resolve your question/issue?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025

 


Article

Incorrect syntax near '-' when executing T-SQL Microsoft SQL Server syntax with the Connect for JDBC SQL Server driver

« Go Back

Information

 
Article Number000035863
EnvironmentProduct: Connect for JDBC SQL Server driver
Version: 5.x, 4.x
OS: All supported platforms
Database: All supported SQL Server database versions
Application: Java
Question/Problem Description
The below exception is returned when trying to execute a query containing a hyphen in the SQL query using the Connect for JDBC SQL Server driver.
Steps to Reproduce
Clarifying Information
excerpt from a T-SQL Query (note the underscore in the parameter value)
..
DECLARE    @l_sql                          nvarchar (2000);
DECLARE    @webm_user                      nvarchar (50); 
set @webm_user = 'oct-222';
set @l_sql = 'ALTER USER ' + @webm_user + ' WITH DEFAULT_SCHEMA=[dbo]'
execute (@l_sql)
..
 
 
Error Message[DataDirect][SQLServer JDBC Driver][SQLServer]Incorrect syntax near '-'.
Defect/Enhancement Number
Cause
Special characters like underscores in identifiers (table, column, index, user,... names) should be surrounded by double quotes ("xxx") or square brackets ([xxx]).
Resolution
Correct the SQL statement so that special characters in identifiers are surrounded by double quotes or square brackets.

Change ' + @webm_user + '  to  "' + @webm_user + '"
Using the example above:
..
DECLARE    @l_sql                          nvarchar (2000);
DECLARE    @webm_user                      nvarchar (50); 
set @webm_user = 'oct-222';
set @l_sql = 'ALTER USER "' + @webm_user + '" WITH DEFAULT_SCHEMA=[dbo]'
execute (@l_sql)
..
Workaround
Notes
Attachment 
Last Modified Date11/4/2016 3:15 PM