のマネージャーを返すストアドプロシージャを作成します。さらに[私はEMPLOYEE表に従業員のマネージャーを返すストアド・プロシージャを作成するために次のことを行っている従業員
を:[報告は数値であり、含まれてい私は常に取得する従業員の管理者のID]
create or replace PROCEDURE MANAGER_OF_EMPLOYEE
(
THE_EMPLOYEEID IN NUMBER
)
AS
TEMP VARCHAR2(20);
TEMP2 VARCHAR2(20);
TEMP3 VARCHAR2(20);
TEMP4 VARCHAR2(20);
BEGIN
SELECT MGR.FIRSTNAME, MGR.LASTNAME, EMP.FIRSTNAME, EMP.LASTNAME INTO TEMP, TEMP2, TEMP3, TEMP4
FROM EMPLOYEE EMP
LEFT OUTER JOIN EMPLOYEE MGR
ON EMP.EMPLOYEEID = MGR.REPORTSTO
WHERE EMP.EMPLOYEEID = THE_EMPLOYEEID AND EMP.REPORTSTO = MGR.EMPLOYEEID;
DBMS_OUTPUT.PUT_LINE(TEMP || ' ' || TEMP2 || ' IS THE MANAGER OF ' || TEMP3 || ' ' || TEMP4);
END MANAGER_OF_EMPLOYEE;
は関係なく、私は、パラメータとして入れたものを「アンドリュー・アダムスは、アンドリュー・アダムスのマネージャーではありません」。 Andrew AdamsはEMPLOYEEテーブルの最初の行であり、トップマネージャーなので、彼は技術的に彼自身のマネージャーです。しかし、私は何を入力しても同じ出力を得るのはなぜですか?
あなたのオン状態が間違っていると思います。 Emp.Employee = Mgr.ReportsToでは、後でEmp.ReportsTo = Mgr.EmployeeIDがあります。 – Sparky