[英]How do I insert a NULL long value?
我有一个数据库组成一个包含多个字段的表,其中一个是存储为NUMERIC的电话号码。 因为电话号码是10位数,在我的代码中我将变量捕获为LONG。
我的问题是,在insert语句中,如何传递NULL值? 这有可能吗? 我不能为LONG变量赋一个空值,所以我想知道如何去做这个......
因为电话号码是10位数,在我的代码中我将变量捕获为LONG。
馊主意。 电话号码可能看起来像数字,但它们不是。 它们是恰好主要是数字的字符串。 但它们也可以包含+
等符号。
请改用String
。
更新:如果您需要使用数字类型,请确保使用Long
而不是long
。 资本化非常重要。 顺便说一句,标准Java中没有LONG
这样的类型。
如果您迫切需要使用数字作为电话号码,为什么不将不存在的电话号码编码为0L或-1L?
编辑:顺便说一下,你说数据库仅限于数字格式。 java方面也一样吗?
long dbPhoneNumber = getTheLongFieldFromTheDatabase();
String internalPhoneNumberRepresentation = Long.toString(dbPhoneNumber);
doSomethingWithString();
dbPhoneNumber = internalPhoneNumberRepresentation == null ? 0L : internalPhoneNumberRepresentation;
storeLongFieldToDatabase(dbPhoneNumber);
应该或多或少地做你需要的一切,对吧?
首先,为什么要将电话号码存储为数字字段? 在大多数情况下,你可能还想存储像“+41(52)123 455”这样的东西,你可以使用数值数据类型来保存,但是没问题。
然后插入空值:怎么样:
INSERT INTO mytable (phone) VALUES (NULL);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.