各位看看,把sql2000过程如何移植到sybase中(那位大侠有sybase的存储过程详细资料)

nzfboy 2002-09-02 09:32:57
我的联系:nzfboy@21cn.com
---------------------------------------------------------------------
我的sybase 11.X的版本。我初次接触sybase。
以下的过程是我的SQL 2000中的。不知道为什么在sybase中不可以执行。

/*根据TrainTime字段(装车时间datetime型) */
/*把所有到达、中转、发送库超期的包裹行李放入package_O库中*/
/*@UseDateDiff用户确定的时间间隔*/
/*并返还影响的记录集*/
CREATE PROCEDURE AdjustGoods_Package
@UseDateDiff Varchar(10) ,
@ResultRec int output
AS
declare @MySql varchar(300)
/*处理超期包裹*/
set @MySql=""
set @MySql=" insert into Package_O"
set @MySql=@MySql+" Select * from Package_R where DateDiff(day, TrainTime, getdate()) >= "+@UseDateDiff
set @MySql=@MySql+" union "
set @MySql=@MySql+" Select * from Package_T where DateDiff(day, TrainTime, getdate()) >= "+@UseDateDiff
Exec(@MySql)
select @@rowcount
GO
--------------------------
报错信息:
sybase
The 'DROP PROCEDURE' command is not allowed within a multi-statement
transaction in the 'Lpmis' Database

-----------------------------------------
各位看看,此过程如何移植到sybase中,还有什么错吗?
...全文
48 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tramplai 2002-09-24
  • 打赏
  • 举报
回复
在sybase中不支持这样的!!我同意 flyspider(飞天蜘蛛) 的!!
qqqdong 2002-09-24
  • 打赏
  • 举报
回复
看看这篇文章
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqlsm/html/sybase2sql.asp

nzfboy 2002-09-24
  • 打赏
  • 举报
回复
好.*.dbo是什么库呀.我没有用到呀.
楼上,请明示在下.
先行谢过.
nzfboy 2002-09-23
  • 打赏
  • 举报
回复
继续.
888888888888 2002-09-23
  • 打赏
  • 举报
回复
sybase里有*.dbo这样的数据库吗?你好好看看。
flyspider 2002-09-06
  • 打赏
  • 举报
回复
我的存储过程

CREATE PROCEDURE dbo.proc_salary;1
@year_month char(6)

AS insert into salary_sum (year_month,emp_sum,emp_resol,skill_wage,
float_wage,cadre_wage,tech_wage,post_wage,service_wage,
length_service,unresol_wage,overtime_subsidy,
reissues_wage,deduct_wage,basic_subsidy,length_subsidy,
tech_subsidy,techni_subsidy,technician_subsidy,shift_subsidy,
on_duty_subsidy,shunt_subsidy,yh_length_service,
housing_subsidy,endowment_subsidy,health_subsidy,
float_count,cadre_count,tech_count,post_count,
service_count,shift_count,teach_count,techni_count,
technician_count,yh_count,standard_wage,spec_subsidy,
flag,endowment_deduct)

select @year_month,count(*),0,sum(skill_wage),
sum(float_wage),0,0,0,0,0,0,sum(overtime_subsidy),0,
sum(absence_deduct),
sum(base_subsidy+remainder_subsidy),
sum(length_subsidy),0,sum(technic_subsidy),
sum(technician_subsidy),
sum(day_subsidy+mid_subsidy+night_subsidy),
sum(on_duty_subsidy),0,0,0,0,
sum(health_subsidy),0,0,0,0,0,0,0,0,0,0,0,
sum(spec_subsidy),'N',sum(endowment_deduct)
from salary_collect
where year_month = @year_month
and dept_no < '9'
BEGIN
commit
END

nzfboy 2002-09-04
  • 打赏
  • 举报
回复
是一个表名。
tramplai 2002-09-03
  • 打赏
  • 举报
回复
这个(Package_O )是表还是包???
nzfboy 2002-09-03
  • 打赏
  • 举报
回复
我编译第二次就出错。所以。。。。
developer2002 2002-09-02
  • 打赏
  • 举报
回复
你编译试一下不得了
nzfboy 2002-09-02
  • 打赏
  • 举报
回复
这样写可以吗?
CREATE PROCEDURE AdjustGoods_Package
@UseDateDiff Varchar(10) ,
@ResultRec int output
AS
insert into Package_O (Select * from Package_R where DateDiff(day, TrainTime, getdate()) >= @UseDateDiff union Select * from Package_T where DateDiff(day, TrainTime, getdate()) >= @UseDateDiff)
developer2002 2002-09-02
  • 打赏
  • 举报
回复
首先说明一点,你在sql server中用到了动态sql.sybase 11.X不支持动态sql
,需要12版本以上。

sybase中的赋值用select,不用set
select @a=1

2,596

社区成员

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

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