plsql insert into语句报错原因是?

2025-04-18 07:39:24
推荐回答(3个)
回答1:

当oracle中报“ORA-00913: 值过多”错误的时候,那么说明写的sql语句中出了问题,这是由于我们向数据库中传递的参数的个数和数据库中相应的字段的数量不一致,所以就产生了一对多,或多对一的现象,

下面举个例子:

Insert into XX(?,?,?) values(?,?,?)

上面是我们自己写的sql语句,我们要插入的值是3个。而数据库中对表XX的定义字段却只有两个,即XX(?,?)。所以我们传的参数的个数多出一个,这样数据库就会报“ORA-00913: 值过多”。

所以我们需要把上面的sql语句改为

Insert into XX(?,?) values(?,?) 或者修改数据库表中字段的个数。

回答2:

下面的select语句中多了一列
select s_xs_td.nextval,
tdid,

这两列你需要去掉一个。

回答3:

select 的值是不是比上面的多,在仔细看看