【发布时间】:2019-06-08 05:34:37
【问题描述】:
我想在存储过程中插入表时删除 XML 空节点。我已经尝试了一些代码,它会抛出错误
PL/SQL:ORA-00932:不一致的数据类型:预期 - 得到 CLOB。
所以请任何人帮助我找出 clob 错误。 int_content 列变量仅是 clob。
INSERT
INTO int_details
(
int_rid,
int_cpy,
int_brn,
int_sre,
int_ree,
int_type,
int_filename,
int_content,
int_status,
int_remarks,
int_blob_content
)
VALUES
(
v_int_rid,
p_cpy_rid,
1,
p_inty_rid,
null,
null,
TO_CHAR(sysdate, 'DDMMYYHH24MISS')||'.xml',
deleteXML(v_clob, '//*[not(text())][not(*)]').getclobval(),
'Active',
'EDI Generated on'||TO_CHAR(sysdate, 'DD-MON-YYY HH24:MI:SS'),
v_blob
);
【问题讨论】:
-
值列表中间的那 3 个
null是怎么回事?看起来您至少缺少一个逗号。为什么要将 null 连接到字符串上?这是一个非操作。另外,我建议您将值列表设为 11 行(不要在字符串连接中添加新行)或注释您的值,以便在有很多连接时知道它们是什么 -
是的,现在改变了,请检查并给出任何想法
-
第一个 TO_CHAR 有 ||前面没有任何东西,这不合适吗?
-
但是现在您已经为所有 3 个空值添加了缺少的逗号,您有一个字符串 concat,它的左侧没有任何内容,并且您有 12 个值被插入到 11 列中
-
对于空值,我会在一段时间后给出价值.. 现在我想知道 deleteXML(v_clob, '//*[not(text())][not( *)]').getclobval(), 行
标签: sql stored-procedures