oracle,mysql function

oracle:

CREATE OR REPLACE
function getSeqValue(seqname in varchar2,counts in number) return number is
  Result number;
  rst number;
  isE  number;
begin
  select count(*) into isE from "uossequence" where "seq_name"=seqname;
  if isE is null or isE=0  then
     insert into  "uossequence" ("seq_value","seq_name") values(1,seqname);
  else
     update "uossequence" set "seq_value"="seq_value"+1 where "seq_name"=seqname;
  end if;
  select "seq_value" into rst from "uossequence" where "seq_name"=seqname;
  if(counts>0) then
     update "uossequence" set "seq_value"="seq_value"-1+counts where "seq_name"=seqname;
     end if;
  commit;
  return(rst);
end getSeqValue;

 

mysql:

CREATE DEFINER = `root`@`%` FUNCTION `chat`.`getseqvalue`(seqname varchar(255), counts int)
RETURNS int(11)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
begin
DECLARE isE int;
DECLARE rst int;
  set isE=(select count(*) from uossequence where seq_name=seqname);
  if isE is null or isE=0  then
     insert into  uossequence (seq_value,seq_name) values(1,seqname);
  else
     update uossequence set seq_value=seq_value+1 where seq_name=seqname;
  end if;
  set rst=(select seq_value from uossequence where seq_name=seqname);
  if(counts>0) then
     update uossequence set seq_value=seq_value-1+counts where seq_name=seqname;
     end if;
  return(rst);
end

 

 

 

 

posted @ 2014-04-10 14:58  next_door_boy  Views(137)  Comments(0)    收藏  举报