请教存储过程的问题

[复制链接]
查看11 | 回复3 | 2015-3-6 11:57:31 | 显示全部楼层 |阅读模式
请教存储过程的问题
create or replace procedure sfb(p_rule_id in out integer)
as
tmp integer;
begin
tmp:=p_rule_id;
p_rule_id:=2;
insert into liu values(p_rule_id);
return;
end;
然后执行exec sfb(1);
可是报错:
SQL> exec sfb(1);
begin sfb(1); end;
ORA-06550: 第 1 行, 第 11 列:
PLS-00363: 表达式 '1' 不能用作赋值目标
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
请问是怎么回事?
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
To uservariable, instead of constant variable.
declare
i integer:=1;
begin
sfb(i);
dbms_output.put_line(i);
end;
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
利用楼上的方法运行成功,多谢.但是请问一下为什么原来的方法运行不成功的原因是什么?bell6248可以解答一下吗?
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
在"sfb(p_rule_id in out integer) "中, “p_rule_id ”是 “in out ”模式的不能用常量来执行(execsfb(100);), 必须用变量!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行