首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 单引号 有关问题?

2013-01-11 
sql 单引号 问题?????declare @ab varchar(24)set @ab 123select *from OPENQUERY(ORCL,select *from

sql 单引号 问题?????
declare @ab varchar(24)
set @ab = '123'
select *  from OPENQUERY(ORCL, 
                  'select *
from TEST
WHERE STORECD =  ''0093'' and PRONO= '''+@ab+''' ')  

我在SQLserver  上 执行上面 语句 抽出的是Oracle的数据 
其中 PRONO 条件是变量 
为啥 老提示 + 附近 有错误那??
Sqlserver中 怎么字符串拼接??
望大虾 解答 
[解决办法]

declare @ab varchar(24)
 set @ab = '123' 
select *  from OPENQUERY(ORCL, 
                   'select *
 from TEST
 WHERE STORECD =  ''0093'' and PRONO= ' +@ab+ ' ')

[解决办法]
TRY:

declare @ab varchar(24)
set @ab = '123' 
EXEC('
select *  from ORCL.DBNAME..TEST
WHERE STORECD =  ''0093'' and PRONO= '''+@ab+''' ')


使用链接服务器,OPENQUERY得第二个参数只能是字符串常量


  

[解决办法]
改成在外面判断呢
select * from OPENQUERY(ORCL,'select * from TEST WHERE STORECD =  ''0093'' ')
where PRONO=@ab
[解决办法]
动态参数的,需要拼接运行


declare @ab varchar(24),@sql VARCHAR(max)
set @ab = '123'
SET @sql='select *  from OPENQUERY(ORCL, ''select *from TEST WHERE STORECD =  ''''0093'''' and PRONO= '''''+@ab+''''''')'
--PRINT @sql 
EXEC (@sql)
[解决办法]
字符串里面两个单引号代表一个单引号

热点排行
Bad Request.