oracle查看加工表的存储,如何在存储过程中利用表参数进行查询

create or replace procedure pro_update_userScore

(

p_table_score_name IN CHAR,

p_win_count IN NUMBER,

p_lose_count  IN NUMBER,

p_equal_count IN NUMBER,

p_dis_count IN NUMBER,

p_user_score IN NUMBER,

p_speed IN NUMBER,

p_user_level IN NUMBER,

p_user_experience IN NUMBER,

p_user_id  IN NUMBER,

n_return   OUT NUMBER

)

is

CURSOR  cur_score_Info(cr_user_id NUMBER)is

select  USER_ID, USER_LEVEL,USER_EXPERIENCE,USER_SCORE,WIN_COUNT,

LOSE_COUNT,EQUAL_COUNT,DIS_COUNT,SPEED

from p_table_score_name ||

where user_id=cr_user_id;

ret_cr_score_info   cur_score_Info%ROWTYPE;

NO_USER_EXCSIT  EXCEPTION;

begin

i_count:=0;

n_return :=0;

FOR ret_cur_scrore IN cur_score_Info(p_user_id) LOOP

ret_cr_score_info:=ret_cur_scrore;

i_count:=i_count+1;

END LOOP;

IF i_count=0 THEN

RAISE NO_USER_EXCSIT;

END IF;

UPDATE p_table_score_name

SET USER_LEVEL=p_user_level,USER_EXPERIENCE=p_user_experience,USER_SCORE=p_user_score,

WIN_COUNT=p_win_count,LOSE_COUNT=p_lose_count,EQUAL_COUNT=p_equal_count,

DIS_COUNT=p_dis_count,SPEED=p_speed

WHERE user_id=p_user_id;

COMMIT;

EXCEPTION

WHEN NO_USER_EXCSIT   THEN

ROLLBACK;

n_return :=12;

WHEN OTHERS THEN

ROLLBACK;

IF SQLCODE=1 THEN

n_return :=13;

ELSE

n_return :=14;

END IF;

end pro_update_userScore;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值