不同币种汇率转换

在日常开发中经常涉及到不同币种之间的账务处理,此时就需要做汇率计算处理,

数据表   gl_daily_rates_v

SELECT gd.conversion_rate,
       gd.from_currency,
       gd.to_currency,
       gd.conversion_type,
       gd.conversion_date,
       gd.*
  FROM gl_daily_rates_v gd

常用逻辑语句

IF rec_header.currency_code <> 'CNY' THEN
          BEGIN
            SELECT gd.conversion_rate
              INTO l_exchange_rate
              FROM gl_daily_rates_v gd
             WHERE gd.from_currency = rec_header.currency_code --源币种
               AND gd.to_currency = 'CNY'--转换目标币种
               AND gd.conversion_type = 'Corporate' --汇率类型
               AND gd.conversion_date = SYSDATE; --汇率日期
          EXCEPTION
            WHEN no_data_found THEN
              h_error_flag := 'Y';
              h_error_msg  := '汇率不存在';
            WHEN OTHERS THEN
              h_error_flag := 'Y';
              h_error_msg  := '查找汇率出错';
            
          END;
        ELSIF rec_header.currency_code = 'CNY' THEN
          l_exchange_rate := 1;
        END IF;



原文地址:https://www.cnblogs.com/wanghang/p/6299376.html