【问题标题】:how to execute pl/sql procedure如何执行pl/sql过程
【发布时间】:2013-11-27 11:28:05
【问题描述】:

程序:

create or replace 
PROCEDURE ADDITION 
(
  A IN NUMBER  
, B IN NUMBER  
, C OUT number
) AS 
BEGIN
  C := A+B;
  dbms_output.put_line(c);
END ADDITION;

执行:

begin
 addition(4,5);
end;

错误:

PLS-00306: wrong number or types of arguments in call to 'ADDITION'
ORA-06550: line 2, column 2:
PL/SQL: Statement ignored
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

如何纠正这个错误。让我知道代码有什么问题

【问题讨论】:

    标签: plsql procedure


    【解决方案1】:

    您的过程需要一个 out 参数,您还需要提供该参数:

    declare
     add_result number;
    begin
     addition(4,5,add_result);
    end;
    /
    

    【讨论】:

    • 错误:-->PLS-00905:对象 SYSTEM.ADDITION 无效 ORA-06550:第 4 行,第 2 列:PL/SQL:语句被忽略 06550。00000 -“行 %s,列 % s:\n%s" *原因:通常是 PL/SQL 编译错误。 *行动:
    • @user3021349:那么您并没有告诉我们一切,因为这确实有效:sqlfiddle.com/#!4/2860e/2
    • 我在这里喜欢variable n number addition(4,5,:n); print n;,但其中有些问题。你能纠正这个
    • @user3021349:sqlfiddle 不支持 DBMS_OUTPUT,但您可以看到没有错误。所以突然间你有了一个“变量”:n。那个是从哪里来的?您为什么不在原始问题中包含该信息?您使用哪个 SQL 客户端(工具)来运行这些语句?
    • 但是我在 sql developer 中试过你的答案是什么,我得到了错误。为什么?
    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 2017-10-18
    • 2019-03-08
    • 2011-09-06
    • 2019-03-26
    相关资源
    最近更新 更多