以一个从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;
结果如下:
1、首先打开oracle数据库,如下图所示。
2、在Oracle中,对于函数的变量赋值,通常有三种方法来进行处理,直接赋值的方法,可以在声明变量的时候直接给变量进行赋值。
3、其次,可以使用SELECT语句对变量进行赋值,主要是SELECT INTO语句,如下代码示例,将变量v_minvar赋予Min(t.sal)的值。
4、最后就是动态SQL语句赋值了,如下代码。
图显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;
declare
num number;
begin
num := 1;
num := num + 1;
dbms_output.put_line(num);
end;
/
你的补充
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;