sysbase的存储过程的问题(在线急等)

rumlee 2004-10-28 10:32:10
我要写一个存储过程,在java里面调用,我要通过这各存储过程得到一个数据集(但不是一个简单查询就可以的,需要对查询的数据做一些处理候再返回),存储过程里面有很多对数据的复杂的操作。这个存储过程该怎样写啊,明天老板就要找我要了。哪位能够帮我给一点提示,我先谢谢了。
...全文
158 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gamaster 2004-10-31
  • 打赏
  • 举报
回复
如果你闲建立临时表烦可以这么写(不过我喜欢手工建立,看起来规则)
create procedure AP_SYLW_8000_SERVER
@QY_ID varchar(20),@YHBM integer,@YHZH varchar(25),@MC varchar(100),@FDDBR varchar(30)
as
begin
if char_length(rtrim(@QY_ID+@MC+@FDDBR+@YHZH))=0 or char_length(rtrim(@QY_ID+@MC+@FDDBR+@YHZH))=null
begin
raiserror 50000 '至少要输入一个查询条件'
return -1
end


select @QY_ID= '%'+rtrim(@QY_ID)+'%'
select @MC= '%'+rtrim(@MC)+'%'
select @FDDBR= '%'+rtrim(@FDDBR)+'%'
select @YHZH= '%'+rtrim(@YHZH)+'%'

SELECT QYNM,QY_ID,'',SWBMBM,MC,FDDBR,''
into #t_qyqc
FROM DJ_SWDJZB A
WHERE A.QY_ID LIKE @QY_ID
AND A.MC LIKE @MC
AND A.FDDBR LIKE @FDDBR

update #t_qyqc set sb_id=SB_ID
from JJ_JJDJB
where #t_qyqc.qynm=JJ_JJDJB.QYNM AND ZXRQ=99999999

update #t_qyqc set yhzh=DJ_KHYH.YHZH
from DJ_KHYH
where #t_qyqc.qynm=DJ_KHYH.QYNM AND DJ_KHYH.JSYHBJ=1 AND DJ_KHYH.YHBM=@YHBM

if @YHZH='%%'
delete from #t_qyqc
where yhzh not like @YHZH

SELECT qy_id,sb_id,swbmbm,qymc,fddbr,yhzh
from #t_qyqc

drop table #t_qyqc

return 0
end
go
gamaster 2004-10-31
  • 打赏
  • 举报
回复
这100分给我吧,我天天就写这些东西。
其实你说的完全可以用select完成,不过写起来复杂而且看着也累。给你一个用临时表的例子吧:
create procedure AP_SYLW_8000_SERVER
@QY_ID varchar(20),@YHBM integer,@YHZH varchar(25),@MC varchar(100),@FDDBR varchar(30)
as
begin
if char_length(rtrim(@QY_ID+@MC+@FDDBR+@YHZH))=0 or char_length(rtrim(@QY_ID+@MC+@FDDBR+@YHZH))=null
begin
raiserror 50000 '至少要输入一个查询条件'
return -1
end

create table #t_qyqc
(qynm integer not null,
qy_id char(20) not null,
sb_id char(24) null,
swbmbm integer not null,
qymc varchar(100) null,
fddbr varchar(30) null,
yhzh varchar(25) null)

select @QY_ID= '%'+rtrim(@QY_ID)+'%'
select @MC= '%'+rtrim(@MC)+'%'
select @FDDBR= '%'+rtrim(@FDDBR)+'%'
select @YHZH= '%'+rtrim(@YHZH)+'%'

insert into #t_qyqc
SELECT QYNM,QY_ID,'',SWBMBM,MC,FDDBR,''
FROM DJ_SWDJZB A
WHERE A.QY_ID LIKE @QY_ID
AND A.MC LIKE @MC
AND A.FDDBR LIKE @FDDBR

update #t_qyqc set sb_id=SB_ID
from JJ_JJDJB
where #t_qyqc.qynm=JJ_JJDJB.QYNM AND ZXRQ=99999999

update #t_qyqc set yhzh=DJ_KHYH.YHZH
from DJ_KHYH
where #t_qyqc.qynm=DJ_KHYH.QYNM AND DJ_KHYH.JSYHBJ=1 AND DJ_KHYH.YHBM=@YHBM

if @YHZH='%%'
delete from #t_qyqc
where yhzh not like @YHZH

SELECT qy_id,sb_id,swbmbm,qymc,fddbr,yhzh
from #t_qyqc

drop table #t_qyqc

return 0
end
go
justin0470 2004-10-29
  • 打赏
  • 举报
回复
结合游标,最后执行sql语句返回数据表
yjf486 2004-10-29
  • 打赏
  • 举报
回复
建立一个视图,在视图中调用你的数据处理存储过程,
rumlee 2004-10-28
  • 打赏
  • 举报
回复
没有人回答我的问题吗,我都急死了。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧