使用PL/SQL简化后台数据录入的一个小尝试

来源:互联网 发布:淘宝嘉年华必须包邮吗 编辑:程序博客网 时间:2024/05/18 06:23

每次基金发分红公告,都需要将分红信息录入到后台的一张数据表中,该表用于计算周/月/半年等周期的涨跌幅。涉及5个日期字段,其中一个还要判断T-1(工作日)。若手工编写sql语句,很容易弄昏头(已经被折磨快半年了)。为了缩减工作量,都快打算写个前台处理程序啥的,不过转念一想,这样工作量会比较大比较耗时,此外,也只是偶尔使用一下,意义不大。后来就想用到用PL/SQL的变量来解决,试了一下还支持中文变量名,挺好用。希望这一招对后台数据维护人员有所帮助。

--registerdate          权益登记日
--
lastnavdate           前一净值日期(新净值日期的前一个工作日)
--
newnavdate            新净值日期(即除息日)
--
distributedate        红利发放日
--
reinvestdate          再投资日

-- 根据公告中的日期,生成录入脚本,避免手工写脚本
SELECT 'insert into ta_profitschema(fundcode, registerdate, lastnavdate, newnavdate, unitprofit, distributedate, reinvestdate) 
       VALUES(
''&基金代码''''&权益登记日''''' ||
       (
SELECT MAX(d_date) FROM topenday WHERE l_workflag = '1' AND d_date < '&除息日'||
       
'''''&除息日'', &单位分红, ''&红利发放日''''&红利发放日'')'
FROM dual;
insert into ta_profitschema(fundcode, registerdate, lastnavdate, newnavdate, unitprofit, distributedate, reinvestdate)
       VALUES('070002', '2008-05-08', '2008-05-07', '2008-05-08', 0.2, '2008-05-09', '2008-05-09')

附图:PL/SQL的变量窗口
PL/SQL Variables窗口

原创粉丝点击