正如标题所述,我正在尝试创建一个程序来显示有关员工的所有信息(Employee_ID、NAME、EMAIL_ADDRESS、HIRE_DATE 和 UPDATE_DATE)。问题是如果employee_id 不在表中,则输出应显示有关员工的所有信息。我要拍摄的输出是:
EXEC get_employee_info_by_employee_id(4565)
Employee_ID: 4565
NAME: Bob Doe
EMAIL_ADDRESS: bobdoe@gmail.com
HIRE_DATE: 30-JUN-10
UPDATE DATE: 13-JULY-12
这是我当前的代码:
create or replace PROCEDURE get_employee_info_by_employee_id
(
p_employee_id NUMBER DEFAULT -1
)
AS
v_count NUMBER;
BEGIN
SELECT COUNT(*)
INTO v_count
FROM employee
WHERE employee_id = p_employee_id;
IF p_employee_id IS NULL THEN
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || employee_id);
DBMS_OUTPUT.PUT_LINE('NAME: ' || name);
DBMS_OUTPUT.PUT_LINE('EMAIL_ADDRESS: ' || email_address);
DBMS_OUTPUT.PUT_LINE('HIRE_DATE: ' || hire_date);
DBMS_OUTPUT.PUT_LINE('UPDATE_DATE: ' || update_date);
ELSE
SELECT COUNT(*)
INTO v_count
FROM employee
WHERE employee_id = p_employee_id;
END IF;
END;
我知道这远非正确。作为一个初学者,我正在寻找如何编辑和使用我目前拥有的代码,并学习如何解决这个问题。我知道我的 ELSE 语句是不正确的,而且我对下一步该做什么感到困惑。非常感谢大家!