大虾们好!
我Oracle不熟,特来请教大家!
SQL Server 2000里有一句是这么写的:
select * from TableA where FieldA = '123456';
if @@RowCount > 0 
   Update TableA set FieldA = '456123'
else
   Insert Into TableA (FieldA) values ('456123')
相信大家都知道这句实现的功能,问题是,在Oracle(8i或者9i)里面怎么用SQL语句实现上面的功能?

解决方案 »

  1.   

    select * from TableA where FieldA = "123456";
    if rownum > 0 
       Update TableA set FieldA = "456123"
    else
       Insert Into TableA (FieldA) values ("456123")
      

  2.   

    begin 
    update tablea set fielda = '456123' where field = '123456';
    IF SQL%NOTFOUND THEN
    insert into tablea (fielda) values ('456123');
    end if;
    commit ;
    end;
      

  3.   

    nCount number;select Count(*) Into nCount from TableA where FieldA = '123456';
    if nCount > 0 Then
       Update TableA set FieldA = '456123'
    else
       Insert Into TableA (FieldA) values ('456123')
    end if;