Ändern Sie Ihr WHERE Bedingung wie folgt:
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
Dies ist eine der Möglichkeiten, auf die Oracle Escape-Zeichen unterstützt. Hier definieren Sie das Fluchtzeichen mit dem escape Stichwort. Einzelheiten finden Sie unter diesem Link auf Oracle Docs.
Der '_' und '%' sind Platzhalter in einem LIKE betriebene Anweisung in SQL.
Der _ character sucht nach dem Vorhandensein eines (beliebigen) einzelnen Zeichens. Wenn Sie nach columnName LIKE '_abc' suchen , erhalten Sie ein Ergebnis mit Zeilen mit 'aabc' , 'xabc' , '1abc' , '#abc' aber NICHT 'abc' , 'abcc' , 'xabcd' und so weiter.
Der '%' Zeichen wird verwendet, um 0 oder mehr Zeichen abzugleichen. Das heißt, wenn Sie nach columnName LIKE '%abc' suchen , es wird Ihnen ein Ergebnis mit 'abc' geben , 'aabc' , 'xyzabc' und so weiter, aber kein 'xyzabcd' , 'xabcdd' und jede andere Zeichenfolge, die nicht mit 'abc' endet .
In Ihrem Fall haben Sie nach '%_%' gesucht . Dadurch werden alle Zeilen mit dieser Spalte mit einem oder mehreren Zeichen, dh beliebigen Zeichen, als Wert angegeben. Aus diesem Grund erhalten Sie alle Zeilen, obwohl kein _ vorhanden ist in Ihren Spaltenwerten.