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

每次基金发分红公告,都需要将分红信息录入到后台的一张数据表中,该表用于计算周/月/半年等周期的涨跌幅。涉及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窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值