我有一個由多個字段組成的單個表的數據庫,其中一個是存儲爲NUMERIC的電話號碼。由於電話號碼是10位數字,在我的代碼中,我已將該變量捕獲爲LONG。如何插入NULL長值?
我的問題是,在插入語句中,我如何傳遞NULL值?這可能嗎?我不能爲LONG變量分配一個空值,所以我想知道如何去做這個...
我有一個由多個字段組成的單個表的數據庫,其中一個是存儲爲NUMERIC的電話號碼。由於電話號碼是10位數字,在我的代碼中,我已將該變量捕獲爲LONG。如何插入NULL長值?
我的問題是,在插入語句中,我如何傳遞NULL值?這可能嗎?我不能爲LONG變量分配一個空值,所以我想知道如何去做這個...
如果你迫切需要使用NUMERICS的電話號碼,爲什麼不只是編寫一個不存在的電話號碼,像0L或-1L?
編輯:順便說一句,你說數據庫是有限的數字格式。對於java方面也一樣嗎?
long dbPhoneNumber = getTheLongFieldFromTheDatabase();
String internalPhoneNumberRepresentation = Long.toString(dbPhoneNumber);
doSomethingWithString();
dbPhoneNumber = internalPhoneNumberRepresentation == null ? 0L : internalPhoneNumberRepresentation;
storeLongFieldToDatabase(dbPhoneNumber);
應該或多或少地做你需要的一切,對吧?
因爲電話號碼是10位數字,在我的代碼中,我已經捕獲變量爲一個長。
壞主意。電話號碼可能是看起來像數字,但它們不是。他們的字符串恰巧是,大部分是數字。但它們也可以包含符號,如+
。使用String
代替。
更新:如果您需要使用數字類型,那麼請確保您使用Long
,而不是long
。 capitilazation是重要的。順便說一句,在標準的Java中沒有LONG
這樣的類型。
是的,或者只是從0開始(這就是所有*我住的電話號碼的情況) –
@JB Nizet:+1這也是一個很好的觀點。 –
我不能使用字符串。軟件規格要求數據庫值爲數字。 –
首先,爲什麼您將電話號碼存儲爲數字字段?在大多數情況下,您可能還想要存儲諸如「+41(52)123 455」之類的東西,但您可以使用數字數據類型來放置,但是可以。
然後插入空值:請問一下:
INSERT INTO mytable (phone) VALUES (NULL);
'長'可以'空',但'長'不能。 –
對電話號碼使用數字字段總是讓我覺得奇怪。 –
如果您想要將值插入到容易識別爲空白或不正確的LONG字段中,請使用0.您可以根據需要進行檢查。但是,正如Eng.Fouad所說的,你不能將null分配給一個原始類型('long'),但是你可以將一個對象('Long')分配給一個對象。 – Grambot