表1
字段1     字段2           字段3表2
字段1     字段2
1           a  
1           b
1           c
1           d
函数
getVer(ver in number)
return bumber
is
        vercnt number(6,0)
begin
     select count('x') into vercnt from 表1 where 字段1 = ver ;
     vercnt := vercnt+1;
     return vercnt 
end    SQL
insert into 表1 select 字段1, 字段2,getVer(字段1) where 字段1 = 1上面这个SQL语句报错,请问怎么改才行。谢谢。

解决方案 »

  1.   

    --你的报什么错误?
    --其实你可以不用建函数的,这样就可以
    insert into 表1 
    select 字段1,字段2,count(*) over(partition by 字段1)
    where 字段1 = 1
      

  2.   

    count数是要在表1中算出来的,
    就是有可能表1种原来有1条数据,现在用insert into 插入多条后字段3是要顺序+1
      

  3.   

    insert into 表1 select 字段1, 字段2,getVer(字段1) where 字段1 = 1你这个select 语句后面的from呢?
      

  4.   

    insert into 表1 select 字段1, 字段2,getVer(字段1) from 表2 where 字段1 = 1