Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 在Toad中调用存储过程_Oracle_Stored Procedures_Toad - Fatal编程技术网

Oracle 在Toad中调用存储过程

Oracle 在Toad中调用存储过程,oracle,stored-procedures,toad,Oracle,Stored Procedures,Toad,我定义了一个新的存储过程,但调用它时出错 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_

我定义了一个新的存储过程,但调用它时出错

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.

您的过程包含out参数,因此需要在块中调用它,如:

declare
a number;
begin 
  getempsal(1,'JAN',a);
  dbms_output.put_line(a);
end;
可以使用调用一个简单的过程(比如使用数字参数)

exec proc(1);


只需编写执行过程的名称('provide_参数中的值','value of IN parameter',:k)


运行此语句时,弹出窗口会将参数设置为in out和数据类型。您将在另一个弹出窗口中看到输出。

Toad是一个基于GUI的客户端工具,与SQL*Plus不同。所以,您可以直接查看该过程并从工具本身执行它;这将在数据网格中打印光标内容。还有一件有用的事情-您可以像这样使用输出光标:exec package_name.procedure_name('param','param2',:0),然后在数据网格中获得光标内容。
begin
proc(1);
end;