0

我正在尝试将搜索输入发送到 REST 服务。在某些情况下,表单输入是一长串数字(例如:1234567890000000000123456789)。我收到 500 错误,看起来有些东西正在尝试将字符串转换为数字。源数据库的数据类型是字符串。

在构建查询字符串时是否可以做一些事情来强制将输入解释为字符串?

该服务是 ArcGIS 服务器的一个实现。

每个请求有关此问题的更多信息。

为了测试,我一直在使用随服务安装提供的客户端表单(见下图)。

我试图在表单条目中添加单引号和双引号,以及通配符。表单提交没有错误,但是没有找到结果。如果我缩短数字(“1234”),或添加一些字母数字字符(“1234A”),表单提交不会出错。

该问题在最近升级到 10.1 后浮出水面。我一直在寻找可以将此与已知问题联系起来的信息,但还没有找到任何东西。

在此处输入图像描述

4

2 回答 2

0

在强制将输入解释为字符串方面,您将输入括在单引号中(例如,'1234567890000000000123456789')。虽然如果您要查询字符串类型的字段,那么您需要将所有在单引号中搜索字符串,在这种情况下,您的任何查询都不应该工作。因此,从您提供的信息中很难判断您到底在做什么以及可能出了什么问题。你能提供更多细节和/或代码吗?您是否通过 Esri 的客户端 API(如 JavaScript API)之一格式化您在 Query 对象中使用的 where 子句?在这种情况下,对于字符串数据类型的字段,您肯定需要将搜索文本括在单引号中。例如,如果您要查询的字段名为“FIELD”,这就是您格式化 where 子句的方式:

FIELD = '1234'

or 

FIELD Like '1234%'

用于通配符搜索。如果您尝试将查询条件直接输入到已发布 ArcGIS Server 服务/图层的查询表单中,那么您也需要将搜索用单引号括起来,如上述示例所示。

于 2013-12-03T03:05:35.537 回答
0

根据 Esri 帮助技术人员的说法,这是已知的错误。

于 2013-12-06T19:30:33.107 回答