http://www.sqlite.org/datatype3.html#affinity
- Если объявленный тип столбца содержит какие-либо из строк "CHAR", "CLOB" или "TEXT", то этот столбец имеет сходство TEXT.Обратите внимание, что тип VARCHAR содержит строку «CHAR» и, таким образом, ему присваивается сходство TEXT.
Вы можете объявить столбцы любого типа, который вам нравится:
CREATE TABLE a_test (a_decimal DECTEXTNOT NULL / * будет храниться как TEXT * /);
def adapt_decimal(d):
return str(d)
def convert_decimal(s):
return decimal.Decimal(s)
# Register the adapter
sqlite3.register_adapter(decimal.Decimal, adapt_decimal)
# Register the converter
sqlite3.register_converter("DECTEXT", convert_decimal)
con = sqlite3.connect("test.s3db", detect_types=sqlite3.PARSE_DECLTYPES)
C1 = con.cursor()
C1.execute("INSERT INTO a_test VALUES(?)", (decimal.Decimal("102.20"),))
Не знаю, является ли это хорошим способом справиться с этим или нет - комментарии приветствуются