00 Stimmen

SQLite: Fehlermeldung "no such function: INSTR"

Frage von Compi | 13.07.2017 um 17:00

Ich bekomme mit SQLite einen komischen Fehler, wenn ich die Funktion INSTR() benutze. Wenn ich zum Beispiel eine Abfrage wie SELECT id FROM tab WHERE INSTR(txt, 'abc') > 0 mache, erhalte ich die Fehlermeldung "no such function: instr".

Laut der Dokumentation von SQLite gibt es die Funktion INSTR() und soweit ich das abschätzen kann, ist auch die Syntax meiner Abfrage korrekt. Woran kann es also liegen, dass es nicht funktioniert? Ich weiß wirklich nicht, was ich hier falsch mache.

AntwortenPositivNegativ
0Beste Antwort0 Stimmen

Die INSTR-Funktion wurde erst mit SQLite 3.7.15 eingeführt. Vermutlich nutzt du eine ältere Version von SQLite, in der es die Funktion noch nicht gab. So ist auch der Fehler zu erklären: SQLite kennt die Funktion einfach noch nicht.

Um deine SQLite-Version herauszufinden, kannst du folgende Abfrage machen, du bekommst dann die Version angezeigt:

SELECT sqlite_version();

Du kannst nun zwei Dinge tun. Entweder du führst ein Update auf eine höhere Version durch, zum Beispiel indem du dir die aktuelle DLL (oder deine benötigte Bibliothek) von der Website von SQLite herunterlädst oder du benutzt eine andere Funktion, die es in deiner SQLite-Version schon gibt. Zum Beispiel kannst du statt INSTR auch LIKE verwenden:

SELECT id FROM tab WHERE txt LIKE '%abc%';

Dieses Statement würde deiner Abfrage "SELECT id FROM tab WHERE INSTR(txt, 'abc') > 0" entsprechen. Beachte aber, dass LIKE unabhängig von der Groß- und Kleinschreibung arbeitet (case insensitive) während INSTR auf die Groß- und Kleinschreibung achtet (case sensitive). Dein "abc" würde also mit INSTR kein "Abc" matchen, mit LIKE dagegen schon.
14.07.2017 um 18:19

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.