create or replace procedure hjzl_sound_cjjc as
--定义市州表的游标
Cursor myCursor is select zhan_name from td_hjzl_sound_zhan;
--定义循环变量
my_name varchar2(50);
test varchar2(30) := 'test str';
begin
--实体表:TD_HJZL_SOUND_TRAFFIC_BB
--基础数据表:td_hjzl_sound_trafficinfo
--对14个内容进行循环
for my_name in myCursor loop
begin
dbms_output.put_line(test);
dbms_output.put_line(my_name);
end;
end loop;
end hjzl_sound_cjjc;
--定义市州表的游标
Cursor myCursor is select zhan_name from td_hjzl_sound_zhan;
--定义循环变量
my_name varchar2(50);
test varchar2(30) := 'test str';
begin
--实体表:TD_HJZL_SOUND_TRAFFIC_BB
--基础数据表:td_hjzl_sound_trafficinfo
--对14个内容进行循环
for my_name in myCursor loop
begin
dbms_output.put_line(test);
dbms_output.put_line(my_name);
end;
end loop;
end hjzl_sound_cjjc;
改成
dbms_output.put_line(my_name.zhan_name);
前面的my_name也不用聲明,且你的聲明是錯的。
my_name應該是游標的一個record
create or replace procedure hjzl_sound_cjjc as
--定义市州表的游标
Cursor myCursor is select zhan_name from td_hjzl_sound_zhan;
--定义循环变量
test varchar2(30) := 'test str';
begin
--实体表:TD_HJZL_SOUND_TRAFFIC_BB
--基础数据表:td_hjzl_sound_trafficinfo
--对14个内容进行循环
for my_name in myCursor loop
begin
dbms_output.put_line(test);
dbms_output.put_line(my_name.zhan_name);
end;
end loop;
end hjzl_sound_cjjc;
Cursor myCursor is select zhan_name from td_hjzl_sound_zhan;
test varchar2(30) := 'test str';
begin
for my_name in myCursor loop
begin
dbms_output.put_line(test);
dbms_output.put_line(my_name.Zhan_name);
end;
end loop;
end hjzl_sound_cjjc;
/
CREATE TABLE houyueUser_sum(
cdate VARCHAR2(10),
huoyue_sum NUMBER(18,0)
);declare
v_year varchar2(16);
v_week varchar2(2);
v_active_user number(18,0);
v_active_user_real number(18,0); v_active_rate number(18,6);
v_active_from number(18,6);
v_active_inc number(18,6);
v_active_rand number(18,6); cursor c_ur is
select t1.year, t1.week, t1.fromDate, t1.toDate,
sum(t2.huoyue_sum) as active_user
from year_week2 t1 inner join houyueUser_sum t2 on
t2.cdate>=t1.fromDate and t2.cdate<=t1.toDate
group by t1.year, t1.week, t1.fromDate, t1.toDate
order by t1.year, t1.week;begin
v_active_from := 0.29;
v_active_inc := 0.004;
for r_ur in c_ur loop
v_year := r_ur.year;
v_week := r_ur.week;
v_active_user := r_ur.active_user;
select dbms_random.value(-0.004,0.004) into v_active_rand from dual; v_active_rate := v_active_from + v_active_rand + v_active_inc ;
v_active_user_real := v_active_user * v_active_rate;
-- dbms_output.put_line(to_char(v_active_rate));
update year_week2 set active_user = v_active_user_real, active_rate = v_active_rate where year = v_year and week = v_week;
v_active_inc := v_active_inc + 0.0065;
end loop;
commit;
end;
/
create or replace procedure hjzl_sound_cjjc as Cursor myCursor is select zhan_name from td_hjzl_sound_zhan;
test varchar2(30) := 'test str';
begin for my_name in myCursor loop dbms_output.put_line(test);
dbms_output.put_line(my_name.zhan_name);
end loop;
end hjzl_sound_cjjc;
--或者这样create or replace procedure hjzl_sound_cjjc as Cursor myCursor is select zhan_name from td_hjzl_sound_zhan;
test varchar2(30) := 'test str';
type my_name_type is table of td_hjzl_sound_zhan.zhan_name%type;
my_name_rec my_name_type:=my_name_type();
begin
open myCursor;
fetch myCursor bulk collect into my_name_rec;
for i in my_name_rec.first..my_name_rec.last loop
dbms_output.put_line(test);
dbms_output.put_line(my_name_rec(i));
end loop;
close myCursor;
end hjzl_sound_cjjc;
--定义市州表的游标
Cursor myCursor is select zhan_name from td_hjzl_sound_zhan;
--定义循环变量
my_name varchar2(50);
test varchar2(30) := 'test str';
begin
--实体表:TD_HJZL_SOUND_TRAFFIC_BB
--基础数据表:td_hjzl_sound_trafficinfo
--对14个内容进行循环
for my_name in myCursor loop
begin
dbms_output.put_line(test);
dbms_output.put_line(my_name.zhan_name);
end;
end loop;
end hjzl_sound_cjjc;