You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORA-19100错误咨询:含XMLType的emp表操作异常排查

解决ORA-19100: PASSING或RETURNING关键字预期错误

这个错误的根源很清晰:你直接把普通字符串常量插入了XMLType类型的列,Oracle无法自动完成普通字符串到XMLType对象的隐式转换,因此触发了这个语法错误。

正确的插入方式

要解决这个问题,只需要用XMLType()函数显式地把XML字符串包装起来,明确告诉Oracle这是一个XML类型的数据。修改你的插入语句如下:

第一个插入语句修改后:

insert into emp values (XMLType('<dept bldg="101"> 
    <employee id="901"> 
        <name> 
            <first>John</first> 
            <last>Doe</last> 
        </name> 
        <office>344</office> 
        <salary currency="USD">55000</salary> 
    </employee> 
</dept>'));

第二个插入语句修改后(注意补全未闭合的标签):

insert into emp values (XMLType('<dept bldg="103"> 
    <employee id="902"> 
        <name> 
            <first>Peter</first> 
            <last>Smith</last> <!-- 这里要补全闭合标签,避免XML语法错误 -->
        </name> 
        <!-- 补充其他字段内容 -->
    </employee> 
</dept>'));

额外注意事项

  • 确保XML字符串格式合法:所有标签必须正确闭合,属性值必须用引号包裹,嵌套结构要层次清晰,否则即使使用了XMLType(),也会触发XML语法相关的错误。
  • 如果在PL/SQL块中插入,也可以先将XML字符串赋值给XMLType变量,再插入表中,效果一致:
declare
    v_xml XMLType;
begin
    v_xml := XMLType('<dept bldg="101">...</dept>');
    insert into emp values (v_xml);
end;
/

内容的提问来源于stack exchange,提问作者Walentyna Juszkiewicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:34:24