我正在尝试在BLOB类型的列上使用DECODE。这是我做的:
update TOTAL
set DATA = decode (DATA, null, null, XMLSERIALIZE (CONTENT XMLTYPE('<myxml>' || DBMS_RANDOM.STRING('X', 200) || '</myxml>') as blob));
我收到以下错误:
SQL Error: ORA-00932: inconsistent datatypes: expected - got BLOB
00932. 00000 - "inconsistent datatypes: expected %s got %s"
如果我使用where DATA is not null
而不是解码,它运行正常。你能帮我解决这个问题吗?提前致谢。 P.S:我使用的是DECODE
而不是NVL2
或WHERE
子句,只是为了与脚本的其余部分保持一致
答案 0 :(得分:0)
您可以尝试使用case when
代替decode
case when DATA is null then null
else XMLSERIALIZE (CONTENT XMLTYPE('<myxml>' || DBMS_RANDOM.STRING('X', 200) || '</myxml>') as blob)
end