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
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号