2017-08-02 108 views
0

我們有以下的select語句:DB2替換失敗,SQLCODE = -171

SELECT REPLACE(REPLACE(EMAIL, x'00', ''), '\n', '') AS EMAIL FROM tabname 

這種失敗,SQLCODE = -171,因爲EMAIL是空的。 只有當EMAIL包含內容時,最有效的方式才能取代EMAIL? EMAIL被定義爲一個varchar。實際選擇是拉多個列,並在大多數情況下進行替換。

+0

您確定替換是問題嗎?替換函數的空字符串或NULL值沒有問題。 – Charles

回答

0

如果你這樣做?

SELECT REPLACE(REPLACE(ifnull(EMAIL, ''), x'00', ''), '\n', '') AS EMAIL FROM tabname 
+0

那真的很接近。我將它改爲nullif。當我使用ifnull時,我收到'代碼:-171,SQL狀態:42815] SYSIBM.REPLACE的參數1的數據類型,長度或值是無效的。當我使用nullif替換工程。 – user3670332