oracle的表变量的赋值给变量赋值,存过及如何给变量赋值

####无参存过

create or replace procedure init_Income_EveMonth is

begin

-- Created on 2016/9/6 by YANGQC

--每月初始化薪资表

declare

cursor salesset is

select s.user_id,to_char(sysdate,'yyyy-mm') month

from sys_salesman s

left join sys_user u on s.user_id = u.user_id

where u.status = 0

and not exists (select 1

from sys_income_main m

where m.month = to_char(sysdate,'yyyy-mm')

and m.user_id = s.user_id);

salary Integer;

begin

for salesman in salesset loop

select nvl((select b.salary

from sys_income_basicsalay b

where b.user_id = salesman.user_id

and b.flag = 0),0)

into salary

from dual;

insert into sys_income_main m

(m.id,USER_ID,month,BASIC_SALARY,ALLRESULT)

values

((select max(m1.id) + 1 from sys_income_main m1),salesman.user_id,salesman.month,salary,salary);

end loop;

commit;

end;

end init_Income_EveMonth;

上面是一个无参存过;

使用into给参数salary赋值,这个只适用于select语句查询出结果的情况;

存过格式如下:

create or replace procedure xxx

begin

end xxx;

####有参存过

create or replace procedure test_parameter(emp_name in varchar2,dept_no out number ) is

begin

dept_no:=2;

end test_parameter;

这个存过定义了输入和输出参数 测试该存过

-- Created on 2016/9/6 by YANGQC

declare

-- Local variables here

i integer:=20;

x varchar2(20);

begin

test_parameter(x,i);

dbms_output.put_line('After swap: x = ' || x || ',i= ' ||i);

end;

输出结果:After swap: x =,i= 2 有参存过的输入和输出参数都不可缺少

总结

以上是编程之家为你收集整理的存过及如何给变量赋值全部内容,希望文章能够帮你解决存过及如何给变量赋值所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值