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

PLS-00382:填充以job_id为索引的关联数组时类型错误如何解决

表结构示意图

错误原因

你定义的jobs_tab_type关联数组的元素类型为jobs%rowtype,对应jobs表的整行记录类型,但循环赋值时仅传入了rec.job_id单个varchar2类型的字段,二者类型不匹配,因此触发PLS-00382: expression is of wrong type报错。

修复代码

如果你需要将jobs表的整行数据存入关联数组(匹配你“存储表中所有数据”的需求),直接将整行记录赋值给数组元素即可:

DECLARE
    TYPE jobs_tab_type IS TABLE OF jobs%rowtype INDEX BY jobs.job_id%type;
    jobstab jobs_tab_type;
BEGIN
    FOR rec IN (SELECT * FROM jobs)
    LOOP
        jobstab(rec.job_id) := rec;
    END LOOP;
END;
/

如果你仅需要存储job_id字段值,可以调整关联数组的元素类型为jobs.job_id%type:

DECLARE
    TYPE jobs_tab_type IS TABLE OF jobs.job_id%type INDEX BY jobs.job_id%type;
    jobstab jobs_tab_type;
BEGIN
    FOR rec IN (SELECT * FROM jobs)
    LOOP
        jobstab(rec.job_id) := rec.job_id;
    END LOOP;
END;
/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:54:07