我是PL/SQL的新手,在输出这段代码时遇到了问题。我有一个填充的employee表,其中包含员工姓名、工作、工资、id等。我需要的是让我的输出显示如下:
Employee Name: Johnson
Job: Service Writer
Total Pay: $32,000
我一直收到错误: exact fetch返回的行数多于请求的行数
ACCEPT p_1 PROMPT 'Please enter the Employee ID:'
DECLARE
v_eid employee.employee_id%TYPE := &p_1;
v_name employee.employee_name%TYPE;
v_job employee.job%TYPE;
v_pay employee.salary%TYPE;
BEGIN
SELECT employee_name, job, salary
INTO v_name, v_job, v_pay
FROM employee;
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_name);
DBMS_OUTPUT.PUT_LINE('Job: ' || v_job);
DBMS_OUTPUT.PUT_LINE('Total Pay: ' || v_pay);
END;
我想我快到了?任何帮助都是最好的!
发布于 2013-04-18 03:16:05
您的SELECT
语句返回多个行,这意味着SELECT INTO
语句将失败,并出现"exact fetch returns more than requested number of rows“错误。
尝试添加WHERE子句,这意味着SELECT语句将只返回一行。我猜从你的代码来看,你想做这样的事情:
ACCEPT p_1 PROMPT 'Please enter the Employee ID:'
DECLARE
v_eid employee.employee_id%TYPE := &p_1;
v_name employee.employee_name%TYPE;
v_job employee.job%TYPE;
v_pay employee.salary%TYPE;
BEGIN
SELECT employee_name, job, salary
INTO v_name, v_job, v_pay
FROM employee
WHERE employee_id = v_eid;
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_name);
DBMS_OUTPUT.PUT_LINE('Job: ' || v_job);
DBMS_OUTPUT.PUT_LINE('Total Pay: ' || v_pay);
END;
有关该错误的更多信息,请查看http://www.techonthenet.com/oracle/errors/ora01422.php。
https://stackoverflow.com/questions/16067879
复制相似问题