Oracle 编译函数时出现错误PLS-00103

Oracle 编译函数时出现错误PLS-00103,oracle,function,plsql,syntax-error,pls-00103,Oracle,Function,Plsql,Syntax Error,Pls 00103,我在编译函数时遇到这个错误 PLS-00103:在预期以下情况时遇到符号*: := . @ % ; 代码如下: CREATE OR REPLACE FUNCTION IncreaseSalary (para_empid IN employee.employeeid%TYPE, para_increase IN NUMBER) RETURN NUMBER IS v_SalaryOut NUMBER(10,2); v_salary2 NUMBER; BEGIN SELECT

我在编译函数时遇到这个错误

PLS-00103:在预期以下情况时遇到符号*: := . @ % ;

代码如下:

CREATE OR REPLACE FUNCTION IncreaseSalary 

(para_empid IN employee.employeeid%TYPE, para_increase IN NUMBER)

 RETURN NUMBER 
IS

 v_SalaryOut NUMBER(10,2);
 v_salary2 NUMBER;

BEGIN

 SELECT Salary INTO v_Salary2
 FROM Employee
 WHERE employeeid = para_empid;

 --this is the area that pertains to the error
 (v_salary2 * para_increase) + v_salary2 = v_salaryout; 

 RETURN v_SalaryOut;

EXCEPTION
 WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Employee not found.');

END IncreaseSalary;
/
下一部分不是函数的一部分,也不是错误的一部分 但可能有错误

DECLARE
 v_SalaryOutput NUMBER := IncreaseSalary;

BEGIN
 IncreaseSalary('01885', '20%');

DBMS_OUTPUT.PUT_LINE ('Increased Salary: ')
 || TO_CHAR(v_SalaryOutput));

END;
/
关键是输入两个数字employeeid和增加表中已列出的任何薪资的百分比,然后返回更新后的薪资。我不明白为什么我不能繁殖

你不能喜欢那样。目标变量应该放在第一位。应该是,

v_salaryout:=v_salary2*para_增加+v_salary2

您已宣布para_增加为数字。但在调用函数时,传递的是“20%”作为值。这将导致数字或值错误:字符到数字转换错误

dbms_输出语句中有一个额外的括号

DBMS_OUTPUT.PUT_LINE“加薪:”| |至_CHARv_Salary OUTPUT