[原创]自己做的存储过程,使用了指针,并调用了外部了时间参数!
*/ --------------------------------------------------------------------------------------<br>*/ 出自: 编程中国 http://www.bc-cn.net<br>*/ 作者: 飙马 <br>*/ 时间: 2007-10-26 编程论坛首发<br>*/ 声明: 尊重作者劳动,转载请保留本段文字<br>*/ --------------------------------------------------------------------------------------<br><br><br><P>因为涉及到工作的保密性,所以不能将全部代码发上来,请大家见谅!基本的功能是这样的:通过在程序中选择一个时间,根据这个时间来选择符合条件的数据,并将它插入某个表。插入的时候,要进行一个判断,如果这个记录已经存在了,就不插入,不存在的话就插入该数据,这个是用游标来实现的。<br><br><br><br>CURSOR acc_c IS /* 定义游标,从表中选出记录 */<br> select ……<br> from ……<br> where<br> /*原语句 a.DATE=732949 */<br> to_date(1721425+a.DATE,'J')= to_date(ParaTime,'YYYY-MM-DD') and/* 将时间参数赋给选择语句*/ <br> ……<br> <br> <br> acc_r acc_c%ROWTYPE; /* 变量acc_r与acc_c类型相同*/<br> AmountToMove NUMBER;</P>
<P><br>BEGIN</P>
<P> OPEN acc_c;<br> LOOP<br> <br> FETCH acc_c INTO acc_r;<br> EXIT WHEN acc_c%NOTFOUND; /*记录不存在时退出*/<br> begin<br> insert into …… /*记录存在时插入*/<br> values ……<br> EXCEPTION <br> when others then null;<br> end; <br> <br> END LOOP ;<br> commit;<br> CLOSE acc_c ; /*关闭指针*/<br> <br><br>/*修改表*/ <br>update ……(<br>select …… from(<br> select ……<br> from ……<br> where<br> ……<br> /*原语句 a.DATE=732949 */<br> to_date(1721425+a.DATE,'J')= to_date(ParaTime,'YYYY-MM-DD') and/*将时间参数赋给选择语句*/<br> …… where ……<br>where EndDate=to_date(ParaTime,'YYYY-MM-DD');<br>/*原语句 where to_number(to_char(EndDate,'J'))=732949+1721425;*/</P>
<P>commit;</P>
<P> <br>END;<br></P><br><br><br><br><br><br>[attach]29536[/attach]<br>
[align=right][color=#000066][此贴子已经被作者于2007-10-26 14:18:52编辑过][/color][/align]
页:
[1]
