我的代码中哪里值太多?

问题描述 投票:0回答:1
SET SERVEROUTPUT ON
SET VERIFY OFF
DECLARE
v_deptno empcopy.deptno%TYPE;
v_empno empcopy.empno%TYPE;
v_sal empcopy.sal%TYPE;
v_bonus NUMBER(7,2);
CURSOR emp_cursor IS
SELECT deptno, empno, sal
FROM empcopy
WHERE deptno < 25;
BEGIN
OPEN emp_cursor;
FETCH emp_cursor INTO v_deptno, v_empno, v_sal;
FOR r_emp in emp_cursor LOOP
IF v_sal < 3000 THEN
v_bonus := v_sal * 1.1;
ELSE
v_bonus := v_sal * 1.12;
v_deptno := v_deptno;
v_empno := v_empno;
v_sal := v_sal;
END IF;
INSERT INTO emp3
VALUES(v_empno, v_deptno, v_bonus, v_sal);
FETCH emp_cursor INTO v_deptno, v_empno, v_sal;
END LOOP;
CLOSE emp_cursor;
DBMS_OUTPUT.PUT_LINE(v_deptno || v_empno || v_bonus);
END;
/
SET SERVEROUTPUT OFF
SET VERIFY ON

'SQL> @ emp3插入emp3*第22行出现错误:ORA-06550:第22行,第13列:PL / SQL:ORA-00913:值太多ORA-06550:第22行,第1列:PL / SQL:SQL语句被忽略'

sql oracle sqlplus
1个回答
0
投票

EMP3显然比INSERT命令为(4)提供数据的列少。

检查EMP3表的定义,并确保该表和插入命令可以匹配。

© www.soinside.com 2019 - 2024. All rights reserved.