在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存储过程或函数

解决方案 »

  1.   

    int 改为number float改为number(a,b)
    insert语句不用改
      

  2.   

    table2主键是自增的,好像不能简单这样处理
      

  3.   

    主键自增的  在oracle里 你的建一个序列  然后把序列的值往表里insert
    另外序列是存在跳号的   有可能不联系  但是能保证唯一
      

  4.   

    如果有序列seq,怎么写存储过程,
    insert into table2(idx,col1,col2,col3) select seq.nextval, a,sum(b),avg(c) from table1 where a<100 group by (a);
      

  5.   

    create procedure pro_mysql asbegin
    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;