import arcpy fc = arcpy.GetParameterAsText(0) field = arcpy.GetParameterAsText(1) value = arcpy.GetParameterAsText(2) query = "{} = '{}'".format(arcpy.AddFieldDelimiters(fc, field), value) with arcpy.da.UpdateCursor(fc, ["OID@", field], where_clause=query) as cursor: for row in cursor: cursor.deleteRow() arcpy.AddMessage("Deleted OID {} with {} = {}".format(row[0], field, value))运行错误:Traceback (most recent call last): File "D:\多对一空间连接\批量删除小面积.py", line 10, in <module> RuntimeError: 使用了无效的 SQL 语句。 [大面大面] 执行(删除小面)失败。
时间: 2023-12-13 11:03:16 浏览: 70
GRB2网格预报数据发布影像服务.zip_.grb数据_Arcpy_GRB2格式数据_arcgis 气象_气象数据
这个错误可能是由于 SQL 查询语句没有正确构造造成的。你可以尝试打印一下 SQL 查询语句,然后在数据库中执行该语句,看看是否有效。
你可以修改代码,在 `query` 变量的赋值语句后面添加一行代码,如下所示:
```python
query = "{} = '{}'".format(arcpy.AddFieldDelimiters(fc, field), value)
print(query) # 打印 SQL 查询语句
```
然后运行脚本,查看打印出来的 SQL 查询语句是否正确。如果 SQL 查询语句正确,你可以将该语句复制到数据库工具中,执行该语句,看看是否能够正确删除记录。如果 SQL 查询语句不正确,你需要检查输入参数是否正确,或者修改 SQL 查询语句的构造方法。
阅读全文