需求原因,在写一个存储过程,用于用户点击按钮的时候更新数据。因为存储过程中使用了循环语句,结果在变异的时候,提示错误(35,24): PL/SQL: ORA-00984: 列在此处不允许请有经验的大神帮忙看看,下面附上源码:create or replace procedure PRC_MES_TECHSTAN_Refresh.zip create or replace procedure PRC_MES_TECHSTAN_Refresh( pi_factory in varchar2, --10000 pi_company in varchar2, --1000 p_user in varchar2, --用户 p_chktype in varchar2, --审核\驳回标识 o_result out number, --成功标识0成功,1不成功 o_msg out varchar2 --返回提示信息)is/* 存储过程名: PRC_MES_TECHSTAN_Refresh 用于MES系统更新工艺信息清单列表,将原来没有的工艺编号插入到工艺表* 传入参数格式:* 无,在界面配置里面设置* 传出参数格式:* 无,在界面配置里面设置* #2023-06-30 新增*/ p_TECH_NO Varchar2(200); p_CZ_DATE date; p_CZ_USER varchar2(50); p_MODIFY_DATE date;begin if p_chktype = '更新工艺型号清单' Then Begin for p_row in ( select distinct ITEM_MODEL from mes_items a where substr(a.item_no,1,2) IN ('02','03') and a.ITEM_MODEL not in (select s.tech_no from mes_techstan s) ) LOOP INSERT INTO mes_techstan (TECH_NO, CZ_DATE, cz_user) --表结构中的主键字段已经用 sys_guid() 默认,所以不需要单独插入 VALUES (c_row.ITEM_MODEL, sysdate, p_user); END LOOP; exception when others then rollback; o_result := 2; o_msg := '错误!' || sqlerrm ; return; end; COMMIT; o_result := 0; o_msg := p_chktype || '成功!'; end if; end;