adding values

i have a table

month_close
year  number
month number




how to add all years in the statement

declare
y = 2015;
x = 1;
begin
loop 
y <= 2100;
loop
x <= 12;
insert into month_close (year, month, ser_start, close_flag) values (y,x,0,0);
end loop;
end loop;
end;

Open in new window


any adjustment for the above code ?
NiceMan331Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Guy Hengel [angelIII / a3]Connect With a Mentor Billing EngineerCommented:
using 1 single insert:
insert into month_close (year, month, ser_start, close_flag)
with _years as ( select 2014 + level value from dual connect by 2014 + level <= 2100 )
, _months as ( select level value from dual connect by level <= 12)
select _years.value, _months.value, 0, 0
  from _years , _months 

Open in new window

0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
pl/sql code fixed:
declare
  _year as number;
  _month as number; 
begin
  _year := 2015;
  while _year <= 2100 
  loop 
     _month := 1;
     while _month <= 12
     loop
        insert into month_close (year, month, ser_start, close_flag) values (_year,_month,0,0);
   end loop;
  end loop;
end;  

Open in new window


you could do all of this without pl/sql, btw ...
0
 
NiceMan331Author Commented:
Error report:
ORA-06550: line 2, column 3:
PLS-00103: Encountered the symbol "_" when expecting one of the following:

   begin function package pragma procedure subtype type use
   <an identifier> <a double-quoted delimited-identifier> form
   current cursor
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
sorry, my value.
replace _year, _month, etc by v_year, v_month etc ...
0
 
NiceMan331Author Commented:
great
thanx
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.