如何执行pl/sql过程
Posted
技术标签:
【中文标题】如何执行pl/sql过程【英文标题】:how to execute pl/sql procedure 【发布时间】: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:
如何纠正这个错误。让我知道代码有什么问题
【问题讨论】:
【参考方案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 中试过你的答案是什么,我得到了错误。为什么?以上是关于如何执行pl/sql过程的主要内容,如果未能解决你的问题,请参考以下文章
PL/SQL 过程的同步。如何保证一次只执行一个程序? [复制]