W przypadku standardowego zapytania LIKE względem klasy funkcji ArcSDE opartej na Oracle znak podkreślenia reprezentuje jednoznaczny znak wieloznaczny, gdy jest używany z łańcuchem.
Próbuję narzucić zapytanie definicji, aby znaleźć ciąg tekstowy, który zaczyna się od 4 cyfr, po których dokładnie następuje znak podkreślenia.
Czy ktoś wie, jak sam określiłbym znak zapytania w zapytaniu lub czy / czym może być znak zmiany znaczenia?
Odpowiedź MDHald działa dla geobaz danych plikowych, ale mój przypadek jest specyficzny dla Oracle. Fałszywie zakładano, że ArcSDE i kwerenda geobazy plików będą działać tak samo w tym przypadku.
\
- uważam, że tak jest również w przypadku Oracle, więc warto poszukać\_
podkreślenia.LIKE
(chociaż w swoim pytaniu wspominasz LIKE) -CABLE LIKE '____\_%'
. Będę tu grać, chociaż używam SQL Servera zamiast Oracle, więc mogę uzyskać inne wynikiCABLE LIKE '____\_%' ESCAPE '\'
- z referencji SQL dla wyrażeń zapytań używanych w ArcGIS - Pomoc na pulpicieOdpowiedzi:
Udało się wyśledzić odpowiedź.
Możesz określić znak ESCAPE w zapytaniu, taki jak:
MY_FIELD LIKE ”____ $ _% 'ESCAPE' $ '
Spowoduje to wyszukanie dokładnie 4 znaków, a następnie znaku podkreślenia i wszystkiego innego po tym.
Znalazłem dokumentację na tej stronie: http://desktop.arcgis.com/en/arcmap/10.3/map/working-with-layers/sql-reference-for-query-expressions-used-in-arcgis.htm
Nie jestem pewien, jak daleko wstecz lub dla jakich wersji jest to ważne, ale działa w ArcGIS Desktop 10.3.
Fragment dokumentacji:
źródło
Aby to zadziałało, musisz zastosować CHAR_LENGTH i SUBSTRING. Wyglądałoby to następująco:
gdzie twoja nazwa pola = nazwa twojego pola.
Nie usuwaj „” w kodzie. Skopiuj jak jest i zamień tylko tekst twoja nazwa pola.
źródło
Natknąłem się na te pytania, które pomogły mi wyjaśnić, dlaczego nie mogłem użyć klauzuli where na kursorze wyszukiwania ArcPy, który mógłby ograniczyć kursor tylko do tych rekordów, które zawierały
_
znak podkreślenia ( ) w określonym polu tekstowym.Zanim go znalazłem, opracowałem fragment kodu ilustrujący problem, więc zamiast marnować ten wysiłek, dodałem do niego rozwiązanie i teraz zamieszczam go tutaj, aby być może pomóc przyszłemu gościowi z tym samym problemem.
Test wykorzystuje geobazę plików i został przeprowadzony w ArcGIS 10.2.2 na komputery.
Dane wyjściowe to:
źródło