日期:2014-05-16  浏览次数:20974 次

mysql存储过程转为oracle存储过程
在mysql中有这样两个表:
create table table1{
   a int primary key auto_increment,
   b int,
   c int
}

create table table2{
   idx  int primary key auto_increment,
   col1 int,
   col2 int,
   col3 float
}
mysql存储过程如下(主要部分):
insert into table2(col1,col2,col3) select a,sum(b),avg(c) from table1 where a<100 group by (a);
如何转换为oracle存储过程或函数
------解决方案--------------------
int 改为number float改为number(a,b)
insert语句不用改
------解决方案--------------------
主键自增的  在oracle里 你的建一个序列  然后把序列的值往表里insert
另外序列是存在跳号的   有可能不联系  但是能保证唯一
------解决方案--------------------
create procedure pro_mysql as

begin
insert into table2(idx,col1,col2,col3) select seq.nextval, a,sum(b),avg(c) from table1 where a<100 group by (a);
--commit;
end;