我试图从Microsoft Access获取* .accdb格式的数据库中的某些值。我正在编写一个Java程序,使用正确的jdbc驱动程序从Access数据库中获取值。
查询是这样的:
SELECT * FROM table_name
我能够检索到我需要的所有值,我对此没有任何问题。当我看到一些(显然,但我很确定它们是)文件上的空字段时,问题就出现了,并且被检索为" null"或""当我将结果转换为Java中的字符串时,TEXT数据类型列的(空字符串)。
我分析了数据库,寻找每列等的默认值。但是我没有发现检索null或""的逻辑原因。对于一个空单元格。根据办公室支持页面:
当字段不包含值时,它包含Null值,或表示Text,Memo或Hyperlink字段,Null值或零长度字符串。
然后我看到两种类型都可以返回空字段,但我仍然无法理解标准。
答案 0 :(得分:1)
我发现在MSSQL数据库中,它取决于输入值的方式。
如果您有这样的表(假设als cols是String):
tbl1
----------------------
| col1 | col2 | col3 |
----------------------
现在您按这样插入数据:
INSERT INTO tbl1 (col1)
VALUES ('Test')
你可能会得到:
col1: Test
col2: Null
Col3: Null
但是,如果yoy插入这样的数据(例如,你不检查值是""在col2中)
INSERT INTO tbl1 (col1, col2, col3)
VALUES ('Test', '', '')
你会得到:
col1: Test
col2: ""
Col3: ""
这主要发生在不仅插入用户填写的数据而不是整个数据。