2014-02-18 38 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' 。 –