1
3つのemployee_idをパラメータとして取り込み、それらを比較するプロシージャを探しています。最低と最高はスワップされます1人は放置されています。私はこれに正しく近づいているかどうかはわかりませんが、if elseセクションでoracle apexにエラーが発生しています。私はおそらくケースステートメントを実装する方が簡単かもしれないと読んだことがありますか? --Note:これは私がこれまで持っているどのような宿題の質問 です:3人の給与を比較し、最低給与と最高給与を交換するPL/SQLプロシージャ
create or replace procedure myproc(empid in number, empid in number, empid in number) is
originalsalary1 employees.salary%type;
originalsalary2 employees.salary%type;
originalsalary3 employees.salary%type;
newsalary employees.salary%type;
begin
select salary INTO originalsalary1 from employees
where employee_id = empid;
select salary INTO originalsalary2 from employees
where employee_id = empid;
select salary INTO originalsalary3 from employees
where employee_id = empid;
if originalsalary1 <= originalsalary2 and originalsalary3 then
newsalary := originalsalary1 * 1.1;
elseif originalsalary2 <= originalsalary1 and originalsalary3 then
newsalary := originalsalary2 * 1.1;
elseif originalsalary3 <= originalsalary1 and originalsalary2 then
newsalary := originalsalary3 * 1.1;
end if;
end;
/
これは完全な答えではありませんが、あなたはすべての3つの従業員IDに同じ変数名を使用しているように見えます。彼らはempid1、empid2、empid3ではありませんか? –
あなたのand節は私にとって間違っています。 'およびoriginalsalary3'は、0以外のすべての値で失敗または評価されます –
手順はまた何も返されないように見えます –