oracle导入编译警告,存储过程编译通过,但是会有警告,然后执行报错。。。。。。...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Oracle中编写存储过程,做了个小功能,但是编译通过会有警告,然后执行报错,这是为什么???

--转账系统

create table CardTable

(

CardID varchar2(20 byte),--账户卡号

C_Money number(12,2)--账户存款

)

--创建转账存储过程

create or REPLACE procedure sp_pro5(

MyCard varchar2,--我的卡号

YouCard varchar2,--你的卡号

TfMoney number,--转账的钱数

Pstate out varchar2--转账状态

) as

myMoney number(12,2);--记录我的余额

youMoney number(12,2);--记录你的余额

begin

begin

--查询我的余额。操作完成后记录

select C_Money into myMoney from cardtable where CardID = MyCard;

--已记录我的余额,判断余额是否足够转账数目

if(TfMoney <= myMoney) then

--做修改操作

update CardTable set C_Money = myMoney - TfMoney where CardID = MyCard;

update CardTable set C_Money = C_Money + TfMoney where CardID = YouCard;

Pstate :='转账成功!';

else

Pstate := '账户余额不足!';

end if;

--无异常,正常提交

commit;

--执行异常

exception

when no_data_found then

Pstate := '转账失败!'l

rollback;

end;

end sp_pro5;

--执行存储过程

DECLARE

Pstate varchar2(100) := '';

begin

sp_pro5('6217000010032394856','6217000010032394971',200000,Pstate);

dbms_output.put_line(Pstate);

end;

错误如下::

在行 3 上开始执行命令时出错:

DECLARE

Pstate varchar2(100) := '';

begin

sp_pro5('6217000010032394856','6217000010032394971',200,Pstate);

dbms_output.put_line(Pstate);

end;

错误报告:

ORA-06550: 第 4 行, 第 3 列:

PLS-00905: 对象 SCOTT.SP_PRO5 无效

ORA-06550: 第 4 行, 第 3 列:

PL/SQL: Statement ignored

06550. 00000 - "line %s, column %s:\n%s"

*Cause: Usually a PL/SQL compilation error.

*Action:

有没有热心大神给解决下,感激不尽

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值