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

使用Bulk Collect时出现PLS-00597类型错误,求解决方法

解决Bulk Collect的PLS-00597类型不匹配错误

错误原因

你定义的cl_emp_rec是嵌套记录类型type_emp_rec的集合,而type_emp_rec内部又包裹了一个emp_det%rowtype字段。但select * from emp_det返回的每一行是直接的emp_det%rowtype类型,和type_emp_rec类型不兼容,这就导致了PLS-00597类型不匹配错误。

解决方法

方案1:简化类型定义(推荐)

直接把表类型定义为emp_det%rowtype的集合,不需要额外嵌套记录,这样和查询返回的类型完全匹配:

declare
   type cl_emp_rec is table of emp_det%rowtype; 
   emp_rec cl_emp_rec; 
begin 
    select * bulk collect into emp_rec from emp_det; 
end;
/

方案2:保留嵌套记录类型(按需使用)

如果业务上确实需要使用你定义的嵌套记录结构,那么在查询时要显式构造type_emp_rec对象,将查询结果赋值到嵌套的v_emp_rec字段中:

declare
   type type_emp_rec is record 
   ( 
      v_emp_rec emp_det%rowtype 
   ); 
   type cl_emp_rec is table of type_emp_rec; 
   emp_rec cl_emp_rec; 
begin 
    select type_emp_rec(emp_det.*) 
    bulk collect into emp_rec 
    from emp_det; 
end;
/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:27:24