Search Postgresql Archives

psql newby question, help to port Sybase ASA StoredProcedure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, can you give me hints to port this ASA stored procesure

ALTER procedure dba.sp_billetes(in p_importe numeric(15))
result(cien_mil numeric(3),cincuenta_mil numeric(3),diez_mil numeric(3),cinco_mil numeric(3),mil numeric(3),quinientos numeric(3),cien numeric(3),cincuenta numeric(3),diez numeric(3),cinco numeric(3),uno numeric(3))
begin
  declare v_divisor numeric(15);
  declare v_resto numeric(15);
  declare v_cociente numeric(15);
  declare v_monto numeric(15);
  declare v_100mil numeric(3);
  declare v_50mil numeric(3);
  declare v_10mil numeric(3);
  declare v_5mil numeric(3);
  declare v_1000 numeric(3);
  declare v_500 numeric(3);
  declare v_100 numeric(3);
  declare v_50 numeric(3);
  declare v_10 numeric(3);
  declare v_5 numeric(3);
  declare v_1 numeric(3);
  declare i integer;
  set v_monto=p_importe;
  set i=1;
  while i < 12 loop
    case i
    when 1 then
      set v_100mil=truncnum((v_monto/100000),0);
      set v_monto=mod(v_monto,100000)
    when 2 then
      set v_50mil=truncnum((v_monto/50000),0);
      set v_monto=mod(v_monto,50000)
    when 3 then
      set v_10mil=truncnum((v_monto/10000),0);
      set v_monto=mod(v_monto,10000)
    when 4 then
      set v_5mil=truncnum((v_monto/5000),0);
      set v_monto=mod(v_monto,5000)
    when 5 then
      set v_1000=truncnum((v_monto/1000),0);
      set v_monto=mod(v_monto,1000)
    when 6 then
      set v_500=truncnum((v_monto/500),0);
      set v_monto=mod(v_monto,500)
    when 7 then
      set v_100=truncnum((v_monto/100),0);
      set v_monto=mod(v_monto,100)
    when 8 then
      set v_50=truncnum((v_monto/50),0);
      set v_monto=mod(v_monto,50)
    when 9 then
      set v_10=truncnum((v_monto/10),0);
      set v_monto=mod(v_monto,10)
    when 10 then
      set v_5=truncnum((v_monto/5),0);
      set v_monto=mod(v_monto,5)
    when 11 then
      set v_1=truncnum((v_monto/1),0);
      set v_monto=mod(v_monto,1)
    end case
    ;
    set i=i+1
  end loop;
  select v_100mil,v_50mil,v_10mil,v_5mil,v_1000,v_500,v_100,v_50,v_10,v_5,v_1
end

thanks in advance for any help you could provide.


Hugo


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux