मैं इस प्रश्नोत्तर में आया जिसने मुझे यह हल करने में मदद की कि क्यों मैं एक आर्कपी खोज कर्सर पर एक खंड का उपयोग करने में असमर्थ था, जो कर्सर को केवल उन रिकॉर्डों तक सीमित कर सकता है जिसमें _
एक विशेष पाठ क्षेत्र में अंडरस्कोर ( ) शामिल था।
जब तक मुझे यह पता चला कि मैंने पहले से ही समस्या का वर्णन करने के लिए एक कोड स्निपेट विकसित कर लिया है, तो उस प्रयास को बर्बाद करने के बजाय, मैंने इसका समाधान जोड़ दिया है और अब इसे यहाँ पोस्ट कर रहा हूँ, शायद इसी समस्या के साथ भविष्य के आगंतुक की मदद कर सके।
परीक्षण एक फ़ाइल जियोडैटेबेस का उपयोग करता है और डेस्कटॉप के लिए ArcGIS 10.2.2 पर चलाया गया था।
import arcpy
arcpy.CreateFileGDB_management(r"C:\Temp","test.gdb")
arcpy.CreateFeatureclass_management(r"C:\Temp\test.gdb","testFC")
arcpy.AddField_management(r"C:\Temp\test.gdb\testFC","testField","Text")
cursor = arcpy.da.InsertCursor(r"C:\Temp\test.gdb\testFC",["testField"])
cursor.insertRow(["ABCD"])
cursor.insertRow(["A_CD"])
cursor.insertRow(["XYZ"])
cursor.insertRow(["X_Z"])
del cursor
where_clause = "testField LIKE '%C%'"
print("Using where_clause of {0} to limit search cursor to print any values containing the letter C:".format(where_clause))
with arcpy.da.SearchCursor(r"C:\Temp\test.gdb\testFC",["testField"],where_clause) as cursor:
for row in cursor:
print(row[0])
print("This is the expected result :-)")
where_clause = "testField LIKE '%_%'"
print("\nUsing where_clause of {0} to limit search cursor to print any values containing an underscore (_):".format(where_clause))
with arcpy.da.SearchCursor(r"C:\Temp\test.gdb\testFC",["testField"],where_clause) as cursor:
for row in cursor:
print(row[0])
print("This is not what I was hoping for :-(")
where_clause = "testField LIKE '%$_%' ESCAPE '$'"
print("\nUsing where_clause of {0} to limit search cursor to print any values containing an underscore (_):".format(where_clause))
with arcpy.da.SearchCursor(r"C:\Temp\test.gdb\testFC",["testField"],where_clause) as cursor:
for row in cursor:
print(row[0])
print("This is what I was hoping for :-)")
आउटपुट है:
>>>
Using where_clause of testField LIKE '%C%' to limit search cursor to print any values containing the letter C:
ABCD
A_CD
This is the expected result :-)
Using where_clause of testField LIKE '%_%' to limit search cursor to print any values containing an underscore (_):
ABCD
A_CD
XYZ
X_Z
This is not what I was hoping for :-(
Using where_clause of testField LIKE '%$_%' ESCAPE '$' to limit search cursor to print any values containing an underscore (_):
A_CD
X_Z
This is what I was hoping for :-)
>>>
\
- मेरा मानना है कि यह ओरेकल के साथ भी है, इसलिए यदि आप\_
अंडरस्कोर की तलाश कर रहे हैं तो आप इसे देखना चाहेंगे ।