在日常开发中经常涉及到不同币种之间的账务处理,此时就需要做汇率计算处理,
数据表 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;