我正在尝试将搜索输入发送到REST服务。在某些情况下,表单输入是一长串数字(例如:123456789000000000000123456789)。我收到500错误,看起来有些事情正在尝试将字符串转换为数字。源数据库的数据类型是字符串。
在构建查询字符串时是否可以执行某些操作以强制将输入解释为字符串?
该服务是ArcGIS服务器的一种实现。
每个请求有关此问题的详细信息。
为了测试,我一直在使用随服务安装提供的客户端表单(参见下图)。
我试图在表单条目中添加单引号和双引号以及通配符。表单提交没有错误,但没有找到结果。如果我缩短数字(“1234”),或添加一些字母数字字符(“1234A”),表单提交不会出错。
最近升级到10.1后问题浮出水面。我已经查找了将此与已知问题联系起来的信息,但尚未找到任何信息。
答案 0 :(得分:0)
在强制将输入解释为字符串方面,您将输入括在单引号中(例如,'123456789000000000000123456789')。虽然如果您要查询字符串类型的字段,那么您需要将所有搜索字符串括在单引号中,在这种情况下,您的查询都不应该正常工作。因此,从您提供的信息中可以很难分辨出您正在做什么以及可能出现的问题。你能提供更多细节和/或代码吗?您是否通过Esri的客户端API(例如JavaScript API)格式化您在Query对象中使用的where子句?在这种情况下,对于数据类型字符串的字段,您肯定需要将搜索文本用单引号括起来。例如,如果您要查询的字段称为“FIELD”,那么您可以使用where子句格式化:
FIELD = '1234'
or
FIELD Like '1234%'
用于通配符搜索。如果您尝试直接在已发布的ArcGIS Server服务/图层的查询表单中输入查询条件,那么您也需要将搜索括在单引号中,如上例所示。
答案 1 :(得分:0)
根据Esri帮助技术人员的说法,这是已知的错误。