SQL Server JDBC集成 - 由于列名

时间:2016-03-17 18:25:31

标签: sql-server integration servicenow altiris

我目前正致力于通过JDBC将一些数据从SQL Server数据库中提取到ServiceNow中。我遇到的问题是查询为某些列带回了空值。

我在SNOW上运行的查询是

select [Capacity (Bytes)] 
from memory_table 

返回列Capacity (Bytes)的空值。在SQL Server数据库中,创建的表的列名为Capacity (Bytes),其中包含空格和括号,我认为这就是为什么它返回null。

我尝试在查询中的列名称周围添加括号,双引号和单引号,但结果是相同的。如果我尝试使用表格中另一列格式正确的查询,它就可以正常工作。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我怀疑您遇到的问题是查询显示名称而不是列名,通过ServiceNow ODBC驱动程序和工具测试您的查询进行调试。 http://wiki.servicenow.com/index.php?title=Using_Interactive_SQL_With_ODBC

我怀疑您的查询会返回错误,因为这可能是显示名称。例如,如果您查询 [分配组] 而不是 assignment_group ,则会收到错误。

select number, short_description, [Assignment group] from incident where number = 'INC0012345';

结果

The following error information describes the failure
ODBC Call     = SQLPrepareW()
SQL State     = 42S22
Native error  = 10125(278D)
Error Message = [SN][ODBC ServiceNow driver][OpenAccess SDK SQL Engine]Column:Assignment group not found.

切换到列名称将起作用

select number, short_description, assignment_group from incident where number = 'INC0012345';

结果

NUMBER  short_description       assignment_group

INC0012345      My incident short descrtiption     123b1c123f12f1234567e123b1234abc