当我们指定一个INSERT语句(该值对于表中的每一列都没有值)时,Oracle发出ORA-00947。
现在,您发布的CREATE TABLE语句显示了一个包含11列的表。您发布的存储过程代码在VALUES(…)子句中显示带有11个值的插入语句。
因此,解释为:
- 您遇到配置管理问题,并且正在运行错误版本的存储过程或错误版本的表
- 您遇到配置管理问题,并且表的实际结构与您认为的不一样(与您的CREATE TABLE脚本不匹配)
- 您并没有真正收到ORA-00947错误
请注意,如果您不想填充每一行,则可以在VALUES子句之前指定相关列的投影。例如,如果您只想填充必填列,则可以编写以下代码:
insert into donor_master (donor_id, dob, age, gender, address, city, pin, state ) values (sq_donor_master.nextval, vdob, vage, vgender, vaddress, vcity, vpin, vstate)
重要的是值的数量与列的数量匹配。
文档中提供了INSERT语句的完整语法。
在此处输入链接描述了解更多。



