だから私は、このSELECT文を持っている:私は、キーボードからの従業員の名前を入力するとoracleでプロシージャを開始するには?
SELECT emp.emp_name, pos_emp.POSITION_NAME
from EMPLOYEE emp
join POSITION_EMPLOYEE pos_emp
on emp.POSITION_EMPLOYEE_POSITION_ID=pos_emp.POSITION_ID
where emp.EMP_NAME='&employee_name';
それは私(POSITION_EMPLOYEEテーブルから)彼(EMPLOYEE表の)名前と位置を返します。しかし、私は、ストアドプロシージャでこれをしたい:
create or replace PROCEDURE emp_pos( EMPLOYEE_NAME IN EMPLOYEE.EMP_NAME%TYPE,
POSITION_NAME OUT POSITION_EMPLOYEE.POSITION_NAME%TYPE)
AS
BEGIN
SELECT pos_emp.POSITION_NAME
INTO
POSITION_NAME
FROM EMPLOYEE emp
JOIN
POSITION_EMPLOYEE pos_emp
ON
emp.POSITION_EMPLOYEE_POSITION_ID
= pos_emp.POSITION_ID
WHERE emp.EMP_NAME
= EMPLOYEE_NAME
;
END;
私は手順を開始しようとしています開始:コンパイラは私にエラーを与える
begin emp_pos('&employee_name');
end;
'への呼び出しで間違った番号または引数の型をEMP_POS 'どこが間違っていますか?
使用は '( '&enter_name')emp_posを開始します。最後に 'パラメータを引用符で囲みます。 – krokodilko
@krokodilkoまだ同じエラーです。 – Freak0345
プロシージャには、最初のIN、2番目のOUTという2つのパラメータがあります。したがって、 'DECLARE my_out_param VACHAR2(100); BEGIN emp_pos( '&enter_name'、my_out_param); 'BEGIN ... ENDブロックにもDBMS_OUTPUT.PUT_LINE(my_out_param);を追加します。 – krokodilko