Sybase IQ 动态执行SQL
时间:2010-08-19
来源:互联网
在Sybase IQ的环境下,我编写了一个返回结果集的sql:
begin
declare @id1 integer;
declare @s varchar(2000);
set @id1=3 ;
set @s='select * from unit where id='+cast(@id1 as varchar);
execute(@s);
end
报错:result set not permitted in ' batch statement '
我修改成:
begin
declare @id1 integer;
declare @s varchar(2000);
set @id1=3 ;
set @s='select * into #tmp from unit where id='+cast(@id1 as varchar);
execute(@s);
select * from #tmp;
drop table #tmp
end
把结果集返回到一个临时表中,然后在获取临时表,请问能不能把结果集返回到一个游标中,此外我想返回这个表的记录条数到当前的一个变量中:
BEGIN
declare @a int
declare @cmd varchar(200)
select @cmd= 'select count(*) into #temp from unit'
execute(@cmd)
select expression into @a from #temp -- expression是临时表的唯一字段名称
truncate table #temp
select @a
END
试问下还有其他办法不通过临时表来实现吗?像SQL Server那样定义参数就可以实现
begin
declare @id1 integer;
declare @s varchar(2000);
set @id1=3 ;
set @s='select * from unit where id='+cast(@id1 as varchar);
execute(@s);
end
报错:result set not permitted in ' batch statement '
我修改成:
begin
declare @id1 integer;
declare @s varchar(2000);
set @id1=3 ;
set @s='select * into #tmp from unit where id='+cast(@id1 as varchar);
execute(@s);
select * from #tmp;
drop table #tmp
end
把结果集返回到一个临时表中,然后在获取临时表,请问能不能把结果集返回到一个游标中,此外我想返回这个表的记录条数到当前的一个变量中:
BEGIN
declare @a int
declare @cmd varchar(200)
select @cmd= 'select count(*) into #temp from unit'
execute(@cmd)
select expression into @a from #temp -- expression是临时表的唯一字段名称
truncate table #temp
select @a
END
试问下还有其他办法不通过临时表来实现吗?像SQL Server那样定义参数就可以实现
作者: plfire 发布时间: 2010-08-19
临时表可以吗?至少ASE是不行的。
IQ不懂,ASE从动态SQL中返回结果集只能通过真实表的方式。
IQ不懂,ASE从动态SQL中返回结果集只能通过真实表的方式。
作者: jarjar 发布时间: 2010-08-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28