带有spring jdbc模板的Sql Server

时间:2013-06-15 07:48:30

标签: java sql-server sql-server-2008 jdbctemplate spring-jdbc

我需要使用spring jdbc模板连接到sql server 2008和2012版本。

在数据库中,我们有空格的列,我尝试使用包含[], ""空格的包裹列,但没有用。使用查询时发生以下错误

SELECT Mon, CC Flag FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY Msisdn)AS RowNum FROM ME_PREPAID) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 2 AND 100
  

com.microsoft.sqlserver.jdbc.SQLServerException:列名无效   'CC'。

请注意,列为CC Flag

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用此SQL字符串:

String sql = "SELECT Mon, \"CC Flag\" FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY Msisdn)AS RowNum FROM ME_PREPAID) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 2 AND 100";

答案 1 :(得分:0)

最后,我找到了这个问题的解决方案。我像这样用[column name]。它工作正常。我已经尝过这样的了。但是在将列名与列表匹配时编程出错了。我使用了值为[Mon],[CC Flag]的数组列表。

mylist.add="[Mon]";   mylist.add="[CC Flag]";

然后我将此列表传递给查询。当我将列名与列表匹配时,出现了错误。以下是正确答案。

SELECT [Mon], [CC Flag] FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY Msisdn)AS RowNum FROM ME_PREPAID) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 2 AND 100