oracle存储过程中如何对一个变量累加赋值 最好有个例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle存储过程中如何对一个变量累加赋值 最好有个例子相关的知识,希望对你有一定的参考价值。

以一个从1+2+3+……100为例。

代码:

declare
i int:=1; --定义变量i
j int:=0; --定义变量j
begin
while i<=100 --循环退出条件
loop --执行循环
j:=j+i; --循环累加值
i:=i+1; --依次为i赋值
end loop; --停止循环
Dbms_Output.Put_Line(j); --打印结果
end;

结果如下:

参考技术A

1、首先打开oracle数据库,如下图所示。

2、在Oracle中,对于函数的变量赋值,通常有三种方法来进行处理,直接赋值的方法,可以在声明变量的时候直接给变量进行赋值。

3、其次,可以使用SELECT语句对变量进行赋值,主要是SELECT INTO语句,如下代码示例,将变量v_minvar赋予Min(t.sal)的值。

4、最后就是动态SQL语句赋值了,如下代码。

参考技术B 图显IP:
下面是一个用游标的存储过程,v_shixiaqu := to_char(to_number(v_region_code)+1);为变量赋值
create or replace procedure test
as

CURSOR c1 IS select parent_id from region where region_name = '市辖区' and region_code = region_name;
v_parent_id region.parent_id%type;
v_region_code region.region_code%type;
v_shixiaqu region.region_code%type;
v_errcode number;
v_errmsg varchar2(1000);
v_count number;

begin
open c1;
LOOP
fetch c1 into v_parent_id;
exit when c1%notfound;
select count(*) into v_count from region where region_id = v_parent_id;
if v_count <> 0 then
select region_code into v_region_code from region where region_id = v_parent_id;
v_shixiaqu := to_char(to_number(v_region_code)+1);
DBMS_OUTPUT.PUT_LINE(v_parent_id||'---'||v_shixiaqu );
update region
set region_code = v_shixiaqu
where parent_id = v_parent_id
and region_name = '市辖区';

commit;
end if;
--fetch c1 into v_parent_id;
end loop;

close c1;

exception
when others then
v_errcode := sqlcode;
v_errmsg := sqlerrm;
dbms_output.put_line( 'error code is ' || v_errcode || ' error message is ' || v_errmsg);
rollback;

end test;追问

我是想这样的!!!
就java中的 String str ="";
str+="123";

追答

什么意思?

追问

就像这样的
String str="";
for(int i=0;i<5;i++)
str+="000";

System.out.println("str="+str);

追答

这个已经实现了啊,在loop里

参考资料:老k博客

参考技术C declare
num number;
begin
num := 1;
num := num + 1;
dbms_output.put_line(num);
end;
/
参考技术D 你的补充
declare
v_bianliang varchar2(1000);
begin
v_bianliang := 'test';
for r in 1 .. 5 loop
v_bianliang := v_bianliang || ',';
end loop;
dbms_output.put_line(v_bianliang);
end;

以上是关于oracle存储过程中如何对一个变量累加赋值 最好有个例子的主要内容,如果未能解决你的问题,请参考以下文章

如何给sqlserver 存储过程中的变量赋值?

oracle 包中定义全局变量

Oracle存储过程中,查询结果有多行如何赋值

Oracle 如何给存储过程赋值

mssql 的 存储过程 变量赋值问题

oracle 存储过程中查询结果无法赋值到变量,请指教