Я использую инструмент оболочки SQLite3 для поддержки небольшой базы данных. Я использую флаги -header -ascii
, хотя это применимо, насколько я могу судить, к любому из вариантов вывода. Я ищу способ избежать двусмысленности по типу возвращаемого значения. Рассмотрим следующий пример:Вывод типа значений, возвращаемых инструментом оболочки SQLite3
Create Table `things` (`number` Integer, `string` Text, `binary` Blob);
Insert Into `things` (`number`,`string`,`binary`) Values (4,'4',X'34');
Select * From `things`;
Это возвращает (с помощью caret notation):
number^_string^_binary^^4^_4^_4^^
Как видно, нет никакого способа определить тип любого из персонажей «4» из ответа в одиночку, поскольку ни один из них не имеет отличительных разделителей.
Есть ли способ принудить включение метаданных типа в ответ?
Я хотел бы избежать:
заявления изменяющих запросов также включают в себя тип, как было бы obfuscatory и был бы излишней в случае я сделал переключение интерфейсов;
предваряя TEXT и BLOB значения до вставки, как это должно было бы быть единым для всех TEXT и BLOB взаимодействия (говоря, что это еще мой предпочтительный выбор должен он прийти к этому).
Что я ищу это переключатель какой-то, что указывает на тип как часть ответа SQLite в и т.д .:
number^_string^_binary^^4^_'4'^_X'4'^^
number^_string^_binary^^4^_text:4'^blob:4^^
или какой-либо его вариации. Основополагающим для этого является только один ответ, содержащий достаточную информацию, чтобы различать тип и значение каждого элемента этого ответа (так же, как и в API-интерфейсе библиотеки SQLite) sqlite3_column_type()
.
Обновление: Я уточнил этот вопрос со времени первого ответа от @ mike-sherrill-cat-remind, чтобы прояснить ожидания.
Рассмотрите возможность использования SQLite API, вместо того, чтобы пытаться для анализа вывода оболочки. –
@ полковник-тридцать два Я рассмотрел API, действительно, я давно адаптировал обертки для API на моем языке выбора, который работает так, как я его хочу. В этом случае мне нужна версия оболочки и по-настоящему трудно поверить, что это невозможно. – rgchris