Почему SQLite сообщает неправильное количество аргументов функции substr() в моем случае?

Я пытаюсь использовать этот ответ, но он сообщает "неправильное количество аргументов для функции substr()".

Затем я попытался проверить следующий простой запрос:

SELECT substr('000' || '4',  -4);

и выдает ту же ошибку.

Документация SQlite говорит, что substr принимает 2 или 3 аргумента, и здесь я даю ему 2, но он все равно жалуется.

Есть идеи, почему?

ОБНОВИТЬ:

Чтобы было еще понятнее, я попытался выполнить просто

SELECT substr('abcdefg',  4);

и выдает ту же ошибку.

ОБНОВЛЕНИЕ2:

На самом деле я использовал SQLite Administrator 0.8.3.2 (который использует довольно старую библиотеку SQLite — SQLite 3.5.1) для выполнения запросов. Теперь я попробовал использовать голый sqlite3.exe (SQLite 3.7.15) - все работает отлично.


person Ivan    schedule 13.12.2012    source источник
comment
Какую версию SQLite вы используете? (выполнить select sqlite_version();)   -  person CL.    schedule 13.12.2012
comment
Я использую SQLite Administrator 0.8.3.2, sqlite_version() возвращает 3.5.1. Я думаю, что это ответ, @CL, все работает нормально, если я использую голый sqlite3.exe. Вы можете опубликовать это как ответ, и я приму его.   -  person Ivan    schedule 13.12.2012


Ответы (1)


Третий параметр substr() стал необязательным в SQLite 3.5.2.

Вам следует получить более новую версию SQLite Administrator (если возможно) или использовать более современный инструмент, например, Менеджер SQLite.

person CL.    schedule 13.12.2012