web-dev-qa-db-ja.com

Toadに保存されているPROCEDUREを呼び出す

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

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.
8
user1050619

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

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

単純なプロシージャ(たとえば、数値パラメータを使用して)は、次のように呼び出すことができます。

exec proc(1);

または

begin
proc(1);
end;
15
Florin Ghita