Oracle:BLOB列上的DECODE

时间:2016-12-07 21:31:42

标签: oracle oracle11g blob

我正在尝试在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而不是NVL2WHERE子句,只是为了与脚本的其余部分保持一致

1 个答案:

答案 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