oracle 函数 指针参数传递,[原创]自己做的存储过程,使用了指针,并调用了外部了时间参数!...

这篇博客介绍了如何在PL/SQL中编写一个存储过程,该过程利用指针和时间参数来筛选数据。根据指定的时间,从源表中选择符合条件的记录,并插入到目标表。在插入时,通过游标检查记录是否存在,避免重复插入。整个过程涉及到数据处理和事务管理,确保数据一致性。
摘要由CSDN通过智能技术生成

[原创]自己做的存储过程,使用了指针,并调用了外部了时间参数!

*/ --------------------------------------------------------------------------------------

*/ 出自: 编程中国 http://www.bc-cn.net

*/ 作者: 飙马

*/ 时间: 2007-10-26 编程论坛首发

*/ 声明: 尊重作者劳动,转载请保留本段文字

*/ --------------------------------------------------------------------------------------

因为涉及到工作的保密性,所以不能将全部代码发上来,请大家见谅!基本的功能是这样的:通过在程序中选择一个时间,根据这个时间来选择符合条件的数据,并将它插入某个表。插入的时候,要进行一个判断,如果这个记录已经存在了,就不插入,不存在的话就插入该数据,这个是用游标来实现的。

CURSOR acc_c IS /* 定义游标,从表中选出记录 */

select ……

from ……

where

/*原语句 a.DATE=732949 */

to_date(1721425+a.DATE,'J')= to_date(ParaTime,'YYYY-MM-DD') and/* 将时间参数赋给选择语句*/

……

acc_r acc_c%ROWTYPE; /* 变量acc_r与acc_c类型相同*/

AmountToMove NUMBER;

BEGIN

OPEN acc_c;

LOOP

FETCH acc_c INTO acc_r;

EXIT WHEN acc_c%NOTFOUND; /*记录不存在时退出*/

begin

insert into …… /*记录存在时插入*/

values ……

EXCEPTION

when others then null;

end;

END LOOP ;

commit;

CLOSE acc_c ; /*关闭指针*/

/*修改表*/

update ……(

select …… from(

select ……

from ……

where

……

/*原语句 a.DATE=732949 */

to_date(1721425+a.DATE,'J')= to_date(ParaTime,'YYYY-MM-DD') and/*将时间参数赋给选择语句*/

…… where ……

where EndDate=to_date(ParaTime,'YYYY-MM-DD');

/*原语句 where to_number(to_char(EndDate,'J'))=732949+1721425;*/

commit;

END;

图片附件: 游客没有浏览图片的权限,请 登录 或 注册

[此贴子已经被作者于2007-10-26 14:18:52编辑过]

a96abd41e70ea831d85a5eead8900b3c.gif

SYVaf7vr.jpg

(24.62 KB)

图片附件: 游客没有浏览图片的权限,请 登录 或 注册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值