Error: One or more layers failed to draw: An invalid SQL statement was used. [ ]
When labeling features with 'define classes of features and label each class differently', the following error message is returned and no labels appear on the map:
"One or more layers failed to draw: An invalid SQL statement was used. [ ]"
On the Layer Properties dialog box > Labels tab, multiple label classes can be defined for a single layer in the Method drop-down list. Each label class is defined by a SQL query. If this query has invalid syntax, this error message appears and labels are not drawn.
It is possible to get label classes with invalid SQL syntax by using the Get Symbology Classes option. Clicking this button automatically builds label classes to match the symbology classes. The above error message can occur because of the following reasons:
- A comma is used as the decimal delimiter, such as in German, French, Italian, Lithuanian, etc.
- The symbology is classified, for example, graduated colors or graduated symbols.
- The class breaks are decimal delimited. For example, the value field is a double, or normalizing is used to create breaks that contain decimal delimiters.
Solution or Workaround
Correct the invalid SQL syntax by editing the query for each label class.
- Open the ArcMap Layer Properties dialog box.
- Select the Labels tab.
- Select a label class from the Class drop-down list.
- Click the SQL Query button to open the Query Builder dialog box.
- Modify the SQL query.
Note: For the scenario stated in the cause, use a period (.) instead of a comma (,) as a decimal delimiter. Incorrect: "AREA" > 66,063000 AND "AREA" <= 70812,056000 Correct: "AREA" > 66.063000 AND "AREA" <= 70812.056000
- Click Verify to insure the SQL state is valid.
- Click OK to close the Query Builder dialog box.
- Repeat Steps 3 through 7 for each label class.
- Make sure there is a check mark next to the Label features in this layer option.
- Click OK to close the Layer Properties dialog box and draw the labels.
- One or more layers failed to draw
- One or more layers failed to draw: The table was not found. [layer]
- One or more layers failed to draw: Invalid SQL syntax