8

新しいストアド プロシージャを定義しましたが、呼び出し中にエラーが発生しました。

CREATE OR REPLACE PROCEDURE SCOTT.getempsal(
        p_emp_id IN NUMBER,
        p_emp_month IN CHAR,
        p_emp_sal OUT INTEGER)

AS
BEGIN
    SELECT EMP_SAL
      INTO p_emp_sal
      FROM EMPLOYEE_SAL
    WHERE  EMP_ID = p_emp_id
    AND    EMP_MONTH = p_emp_month;

END getempsal;

そしてそれを呼び出そうとしています:

getempsal(1,'JAN',OUT) --Invalid sql statement.
4

2 に答える 2

16

プロシージャには out パラメータが含まれているため、次のようにブロックで呼び出す必要があります。

declare
a number;
begin 
  getempsal(1,'JAN',a);
  dbms_output.put_line(a);
end;

単純な手順 (数値パラメーターを使用してみましょう) は、次のように呼び出すことができます。

exec proc(1);

また

begin
proc(1);
end;
于 2013-02-01T04:21:29.520 に答える