oracle存储过程批量复制数据库,【学习笔记】Oracle存储过程 实现数据表的更新、汇总、复制功能...

在项目中,要对相片档案资料进行归档(案卷号、件号、题名、归档人、归档日期,归档标示),在归档过程中要用到全文检索(用一个字段保存全文实现),把该数据从部门表复制到总表中,即要实现更新、汇总、复制功能于一体的存储过程:

ALTER PROC [dbo].[guidang]

@tablename varchar(30),

@id int ,

@tm varchar(500),

@jh int,

@t DATETIME ,

@ajh INT,

@gdr VARCHAR(10)

AS

DECLARE @sql VARCHAR(2000) SET @sql='update '

+@tablename+' set flag='''+CAST(3 AS VARCHAR(1))+''',gdr='''+@gdr+''',

gdsj='''+CAST(@t AS VARCHAR(25))+''',jh='+CAST(@jh AS varchar(10))+',

ajh='+CAST(@ajh AS? VARCHAR(10))+',tm='''+@tm+''',textall=tm+'+

'''|'''+'+isnull(gjz,'''')+'+'''|'''+'+isnull(gjz,'''')+'+'''|'''

+'+isnull(fsdd,'''')+'+'''|'''+

'+isnull(zyrw,'''')+'+'''|'''+'+isnull(psz,'''')+'+'''|'''

+'+isnull(tgz,'''')+'

+'''|'''+'+isnull(zrz,'''')+'+'''|'''+'+isnull(srz,'''')+'

+'''|'''+'+isnull(bz,'''')+'+'''|'''+'+isnull(scr,'''')+'+'''|'''+

'+isnull(shr,'''')+'+'''|'''+'

+isnull(gdr,'''')where id='+CAST(@id AS VARCHAR(10))+';insert into S_bm_all

select * from '

+@tablename+' where id='+CAST(@id AS VARCHAR(10))

EXEC(@sql)

在这个编写过程中,如果汇总项中,有一项为null,就会得到textall为null,这个困惑了我很久,最后发现了问题在这,用isnull函数解决问题,还有一个细节问题,“‘”有表示转义的意思

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值