运行存储过程时 将数据类型 varchar 转换为 float 时出错

trueboybear13 2006-03-30 03:17:22

CREATE PROCEDURE CToW

@TempTable varchar(255),
@TempName varchar(255)

AS
declare @strTmp varchar(555)


set @strTmp='select * from "' +str(@TempTable) +'" where e_expr="'+@TempName

exec (@strTmp)
GO
问提出在那?刚学、
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xikboy 2006-03-30
  • 打赏
  • 举报
回复

str(@TempTable)

@TempTable 这个是表名吧,能用STR??
STR 由数字数据转换来的字符数据。

会不会是这样
CREATE PROCEDURE CToW

@TempTable varchar(255),
@TempName varchar(255)

AS
declare @strTmp varchar(555)


set @strTmp='select * from ''' +@TempTable +''' where e_expr='''+str(@TempName)

exec (@strTmp)
GO
trueboybear13 2006-03-30
  • 打赏
  • 举报
回复
已经解决
是这样的
CREATE PROCEDURE CToW
@TempTable varchar(55),
@TempName varchar(255)

AS
declare @strTmp varchar(555)


set @strTmp='select * from '+ cast(@TempTable as varchar) +' where e_expr='+ cast(@TempName as varchar)

exec( @strTmp)
GO

selectplayer 2006-03-30
  • 打赏
  • 举报
回复
CREATE PROCEDURE CToW

TempTable varchar(255),
TempName varchar(255)

AS
declare @strTmp varchar(555)

select top 1 @strTmp='select * from ' TempTable +' where e_expr='+TempName
from CToW

exec (@strTmp)
GO
windindance 2006-03-30
  • 打赏
  • 举报
回复
set @strTmp='select * from "' +@TempTable +'" where e_expr="'+@TempName

str()只能用于数字类型。
eddy8863 2006-03-30
  • 打赏
  • 举报
回复
在表上加个[]试试
trueboybear13 2006-03-30
  • 打赏
  • 举报
回复
在sql中正确运行是这样的

select * from c_wu where e_expr='340000000'

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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