在PL/SQL或者是Oracle的SQL里面,相加不能使用 + 应该使用 || UPDATE EMP SET SAL=SAL+P_RAISE WHERE EMPNO=P_EMPNO; 修改为 UPDATE EMP SET SAL=SAL || P_RAISE WHERE EMPNO = P_EMPNO; 其他类似.
CREATE OR REPLACE PROCEDURE CHANGE_SALARY(P_EMPNO IN NUMBER DEFAULT 7788,P_RAISE NUMBER DEFAULT 10) AS V_ENAME VARCHAR2(10); V_SAL NUMBER(5);BEGIN SELECT ENAME,SAL INTO V_ENAME,V_SAL FROM EMP WHERE EMPNO=P_EMPNO; UPDATE EMP SET SAL=SAL+P_RAISE WHERE EMPNO=P_EMPNO; DBMS_OUTPUT.PUT_LINE('雇员'||V_ENAME||'的工资被改为'||TO_CHAR(V_SAL+P_RAISE)); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('发生错误,修改失败!'); ROLLBACK; END; 楼主请你注意你的符号啊,不要输入中文符号,这个可以编译成功
UPDATE EMP SET SAL=SAL+P_RAISE WHERE EMPNO=P_EMPNO;
修改为
UPDATE EMP SET SAL=SAL || P_RAISE WHERE EMPNO = P_EMPNO;
其他类似.
AS
V_ENAME VARCHAR2(10);
V_SAL NUMBER(5);BEGIN
SELECT ENAME,SAL INTO V_ENAME,V_SAL FROM EMP WHERE EMPNO=P_EMPNO;
UPDATE EMP SET SAL=SAL+P_RAISE WHERE EMPNO=P_EMPNO;
DBMS_OUTPUT.PUT_LINE('雇员'||V_ENAME||'的工资被改为'||TO_CHAR(V_SAL+P_RAISE));
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生错误,修改失败!');
ROLLBACK;
END;
楼主请你注意你的符号啊,不要输入中文符号,这个可以编译成功