0

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

我从 SNOW 运行的查询是

select [Capacity (Bytes)] 
from memory_table 

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

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

任何帮助,将不胜感激。

4

1 回答 1

1

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

我怀疑您的查询将返回一个错误,因为这可能是一个显示名称。例如,如果您查询[Assignment group]而不是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
于 2016-03-21T15:05:26.180 回答