存储过程出错,请帮忙解决!
在网上看到一个有关公交线路查询的例子,表结构如下:
ID Stataion Orders
1路 鼓楼 1
1路 新街口 2
1路 汽车站 3
1路 火车站 4
2路 新街口 1
2路 飞机场 2
2路 天安门 3
3路 天安门 1
3路 石门坎 2
3路 驾校 3
存储过程如下:
CREATE PROC p_qry1
@id varchar(200)
as
begin
declare @e varchar(8000)
set @e= ' '
select @e=@e+ '-> '+Station from T_line where ID=@id order by Orders
set @e=stuff(@e,1,2, ' ')
return (@e)
end
GO
执行exec p_qry1 '1路 '
出现如下错误:
服务器: 消息 245,级别 16,状态 1,过程 p_qry1,行 9
将 varchar 值 '鼓楼-> 新街口-> 汽车站-> 火车站 ' 转换为数据类型为 int 的列时发生语法错误。
[解决办法]
CREATE PROC p_qry1 (
@id varchar(2000))
as
begin
declare @e varchar(100)
set @e= ' '
select @e=@e+ '-> '+ltrim(Station) from T_line where ID=@id order by Orders
set @e=stuff(@e,1,2, ' ')
select @e as a
end
GO