yybing110
2011-08-26 12:17
采纳率: 50%
浏览 176
已采纳

帮忙SQLSERVER通过存储写ORACLE语句优化

这个 问题放错大类了 不会移动
现在有这个需求 从sqlserver里查出数据进行简单的出来后 插入oracle表中 我写好的个存储但是运行的时候感觉效率特别慢
谁能帮我把下面的 语句优化下
存储在sqlserver这边

if Exists(select name from sysobjects where name='ZHIJIAN_BANZHENG_INIT' and type='P')
drop procedure ZHIJIAN_BANZHENG_INIT
go
create PROCEDURE ZHIJIAN_BANZHENG_INIT
as

DECLARE @zch varchar(30), --长度根据实际长度修改
@jgdm varchar(30),
@jgmc varchar(250),
@jglx varchar(30),
@bzrq datetime,
@body varchar(500),
@date varchar(10),
@uid varchar(30)

set @date =convert(char(10),getdate(),120) --获得当前日期
declare cursor2 cursor for --定义游标cursor1
select zch,jgdm,jgmc,jglx,bzrq from jgdm where jglx='1' --使用游标的对象(跟据需要填入select语句)
open cursor2 -- fetch cursor2 --into @name,@party_id --打开游标

WHILE 1=1 --判断是否成功获取数据
begin

fetch next from cursor2 into @zch,@jgdm,@jgmc,@jglx,@bzrq --将游标向下移1行

if(@@FETCH_STATUS =-1)
break

SET @uid=CAST(CAST(NEWID() as nvarchar(36)) + CAST(GETDATE() as varchar(3)) as varchar(30))
set @body='{"QYZCH":'+@zch+ --封装为JSON格式
'","ZZJGDM":"'+@jgdm+
'","JGMC":'+@jgmc+
'","JGZCLX":"'+@jglx+
'","BZRQ":"'+CONVERT (varchar(8),@bzrq,112) +'"}'

--print(@body)
insert into [127.0.0.1]..[JXWFRONT].[DATA_TEMP_REPORT] values(@uid,'zhijian_banzheng',@body,'1',@date) --插入oracle数据库 如何优化

end

close cursor2 --关闭游标
deallocate cursor2

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • rainbow702 2011-08-26 12:38
    已采纳

    [quote]
    insert into [127.0.0.1]..[JXWFRONT].[DATA_TEMP_REPORT] values(

    select  CAST(CAST(NEWID() as nvarchar(36)) + CAST(GETDATE() as varchar(3)) as varchar(30)),
               'zhijian_banzheng',
               '{"QYZCH":'+ zch +'","ZZJGDM":"'+jgdm+'","JGMC":'+jgmc+'","JGZCLX":"'+jglx+'","BZRQ":"'+CONVERT (varchar(8),@bzrq,112) +'"}',
               '1',
               convert(char(10),getdate(),120)
       from jgdm 
       where jglx='1' 
    

    )
    [/quote]

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题