带有VARCHAR(2)4000字节值的UPDATE列

时间:2016-01-19 17:06:01

标签: sql oracle sql-update sql-types

我想更新一个列中包含复杂条目的表,只更新列中的子句而不影响其他值。

希望将#Rule number=0#更新为#Rule number=1#,但不会影响该列中的其他值。这可能吗? enter image description here

2 个答案:

答案 0 :(得分:4)

您在寻找replace()吗?如果dynamic_attributes是字符串:

update t
    set dynamic_attributes = replace(dynamic_attributes,
                                     '#Rule number=0#',
                                     '#Rule number=1#'
                                     )
    where dynamic_attributes like '%#Rule number=0#%';

注意:字符串可能不是存储此类列表的最佳方式。您应该考虑每个customer_id和动态属性一行的表。

答案 1 :(得分:1)

这是:

UPDATE A 
SET A.dynamic_attributes = REPLACE(A.dynamic_attributes,'#Rule number=0#','#Rule number=1#')  
FROM yourtable AS A  
WHERE A.dynamic_attributes LIKE '%#Rule number=0#%'