我有一个名为deliverysimp
的表,我试图插入一些数据。我知道列的数据类型只是亲和力而不是限制,但我需要将parcelid
列保存为TEXT
。
CREATE TABLE IF NOT EXISTS deliverysimp (parcelid TEXT, expected integer, primary key (parcelid))
我使用以下javascript将数据插入数据库:
context.executeSql("INSERT INTO deliverysimp(parcelid, expected) values(?,?)",
[
'' + delivery.parcelid,
delivery.expected
], function () { }, me.ErrorHandler);
你可以看到我试图在parcelid之前添加一个空白'' +
来尝试强制亲和力,但行为是相同的没有;即:
如果我尝试存储parcelid 33333333333322222222222222222222223
,它会以3.3333333333322223e+34
的形式存储到数据库中,我需要将其作为文本/字符串表示。
我有什么想法让SQLite以TEXT
来表达这一点?
答案 0 :(得分:2)
我怀疑你已经有了一个字符串,而不是你期望的字符串。由于您拥有的数字不能用8字节整数表示,它会被转换为实数,而 会被转换为字符串,即' 3.3333333333322223e + 34' 。因此,如果您希望该值为' 33333333333322222222222222222222223',那么您必须将其插入到表格中。
要检查,请使用SELECT parcelid, TYPEOF(parcelid) FROM deliverysimp;
命令行工具执行sqlite3
并查看您获得的内容。