Para uma consulta LIKE padrão em uma classe de recurso ArcSDE baseada em Oracle, o caractere sublinhado representa um caractere curinga de um caractere quando usado com uma sequência.
Estou tentando impor uma consulta de definição para encontrar uma sequência de texto que comece com 4 dígitos exatamente seguidos por um caractere sublinhado.
Alguém sabe como eu especificaria um caractere sublinhado em uma consulta ou se / qual o caractere de escape?
A resposta do MDHald funciona para geodatabases, mas meu caso é específico do Oracle. Falsamente assumiu que o ArcSDE e a consulta de geodatabase do arquivo funcionariam da mesma forma neste caso.
\
- acredito que esse também é o caso do Oracle, portanto, você deve procurar\_
se estiver procurando pelo sublinhado.LIKE
(embora você mencione LIKE na sua pergunta) -CABLE LIKE '____\_%'
. Eu vou ter um jogo aqui, embora eu estou usando SQL Server em vez da Oracle, pode obter resultados diferentesCABLE LIKE '____\_%' ESCAPE '\'
- from SQL para expressões de consulta usadas no ArcGIS - Ajuda do DesktopRespostas:
Conseguiu rastrear a resposta.
Você pode especificar um caractere ESCAPE na consulta, como:
MY_FIELD COMO '____ $ _%' ESCAPE '$'
Isso procurará exatamente 4 caracteres, seguidos por um caractere de sublinhado, além de qualquer outra coisa depois disso.
Encontrei a documentação nesta página: http://desktop.arcgis.com/en/arcmap/10.3/map/working-with-layers/sql-reference-for-query-expressions-used-in-arcgis.htm
Não tenho certeza de quanto tempo atrás ou para quais versões isso é válido, mas funciona para o ArcGIS Desktop 10.3.
Trecho da documentação:
fonte
Você precisará empregar CHAR_LENGTH e SUBSTRING para que isso funcione. Seria o seguinte:
onde yourfieldname = o nome do seu campo.
Não exclua o "" no código. Copie como está e substitua apenas o texto yourfieldname.
fonte
Encontrei estas perguntas e respostas que me ajudaram a resolver por que não consegui usar uma cláusula where em um cursor de pesquisa do ArcPy que poderia restringir o cursor apenas aos registros que continham sublinhado (
_
) em um campo de texto específico.Quando o encontrei, já havia desenvolvido um trecho de código para ilustrar o problema. Assim, em vez de desperdiçar esse esforço, adicionei a solução e agora a estou postando aqui para talvez ajudar um futuro visitante com o mesmo problema.
O teste usa um geodatabase de arquivo e foi executado no ArcGIS 10.2.2 for Desktop.
A saída é:
fonte