2014-02-18 39 views
0

我有一組json格式存儲在列中,現在我需要替換特定的單詞。如何使用替換查詢。每次我使用它,我都會得到令牌異常。請指教。它是一種DB2我使用 我有3列替換DB2中的查詢格式

Name Age Data 
ABD  15 [{"Name":"ABC","type":"Regular","Math":18}] 

在數據列,我需要做的「類型」的一個替代,它應該是StudentType。

REPLACE(Data,'type','StudentType'); 

這沒有奏效。怎麼做?很多提前

+0

你可以添加一個令牌異常的例子嗎?您的使用看起來是正確的:http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/r0000843.htm –

+0

[錯誤代碼: -104,SQL狀態:42601] DB2 SQL錯誤:SQLCODE = -104,SQLSTATE = 42601,SQLERRMC = replace; BEGIN-OF-STATEMENT; ,DRIVER = 4.15.82 – madhu

+1

爲了完整,哪個平臺/版本的DB2?在iSeries上,「SQLCODE = -104」表示「未找到」。什麼是你的完整'UPDATE'語句(或者至少是重現錯誤的最小大小)?作爲一個側面說明,存儲年齡是有問題的,因爲你必須每年更新一次(並且你不知道什麼時候......)。 –

回答

3

感謝就像@mustaccio指出,如果在select語句使用REPLACE它只會與'StudentType'而不是'type'返回數據。這實際上並不會改變數據庫中的數據。如果你想更新你的數據,你需要UPDATE聲明

UPDATE MyTable 
SET MyColumn = REPLACE(MyColumn,'OldString','NewString') 
+2

我也會在你的搜索表達式中使用':'type':''和你的替換表達式'''StudentType':''這樣可以防止他們的名字或者其他屬性被錯誤地替換爲''type' 。 –