Для стандартного запроса LIKE к классу объектов ArcSDE на основе Oracle символ подчеркивания представляет собой подстановочный знак из одного символа при использовании со строкой.
Я пытаюсь навязать запрос определения, чтобы найти текстовую строку, которая начинается с 4 цифр, за которыми следует символ подчеркивания.
Кто-нибудь знает, как я мог бы указать сам символ подчеркивания в запросе или если / каким может быть escape-символ?
Ответ MDHald работает для файловых баз геоданных, но мой случай специфичен для Oracle. Ложно предполагалось, что запрос ArcSDE и файловой базы геоданных будет работать одинаково для этого случая.
\
- я полагаю, что это также относится и к Oracle, поэтому вы должны искать,\_
если ищите подчеркивание.LIKE
(хотя вы упоминаете, как как в своем вопросе) -CABLE LIKE '____\_%'
. ЯCABLE LIKE '____\_%' ESCAPE '\'
- из справочника SQL для выражений запросов, используемых в ArcGIS - Справка для рабочего столаОтветы:
Удалось отследить ответ.
Вы можете указать ESCAPE символ в запросе, например:
MY_FIELD LIKE '____ $ _%' ESCAPE '$'
Это будет искать ровно 4 символа, за которыми следует символ подчеркивания плюс что-нибудь еще после этого.
Нашел документацию на этой странице: http://desktop.arcgis.com/en/arcmap/10.3/map/working-with-layers/sql-reference-for-query-expressions-used-in-arcgis.htm
Не знаю, как далеко назад или для каких версий это действительно, но это работает для ArcGIS Desktop 10.3.
Выдержка из документации:
источник
Вам нужно будет использовать CHAR_LENGTH и SUBSTRING, чтобы это работало. Это будет выглядеть следующим образом:
где yourfieldname = название вашего поля.
Не удаляйте "" в коде, хотя. Скопируйте как есть и замените только текст yourfieldname.
источник
Я наткнулся на эти вопросы и ответы, которые помогли мне решить, почему я не смог использовать предложение where в поисковом курсоре ArcPy, которое могло ограничить курсор только теми записями, которые содержали подчеркивание (
_
) в определенном текстовом поле.К тому времени, когда я нашел его, я уже разработал фрагмент кода, чтобы проиллюстрировать проблему, поэтому вместо того, чтобы тратить эти усилия, я добавил к нему решение и сейчас публикую его здесь, чтобы, возможно, помочь будущему посетителю с той же проблемой.
Тест использует файловую базу геоданных и был запущен в ArcGIS 10.2.2 для рабочего стола.
Выход:
источник