如何在定义游标的时候使用动态sql语句?
2011-10-24 11:14
696 查看
这样写是错的
declare @qa nvarchar(200)
declare @i int
declare @sql nvarchar(255)
set @i = 1
while @i <= 5
begin
set @sql = 'select q' + convert(nvarchar(2), @i) + ' from ImportSurveyInfo'
set @i = @i + 1
declare cur cursor for exec @sql
open cur
fetch cur into @qa
select @qa
close cur
deallocate cur
end
应该这样
declare @qa nvarchar(200)
declare @i int
declare @sql nvarchar(255)
set @i = 1
while @i <= 5
begin
set @sql = 'declare cur cursor for
select q' + convert(nvarchar(2), @i) + ' from ImportSurveyInfo'
set @i = @i + 1
exec(@sql)
open cur
fetch cur into @qa
select @qa
close cur
deallocate cur
end
declare
type MyCursor is REF CURSOR ;
cur MyCursor;
rst xx%rowtype;
sqlstr varchar2(400);
tablename varchar2(20);
begin
tablename := 'xx';
sqlstr := 'select * from ' || tablename;
--下面这句就是你想要的
open cur for sqlstr;
loop
fetch cur into rst;
exit when cur%notfound;
--做你要做的
end loop;
end;
declare @qa nvarchar(200)
declare @i int
declare @sql nvarchar(255)
set @i = 1
while @i <= 5
begin
set @sql = 'select q' + convert(nvarchar(2), @i) + ' from ImportSurveyInfo'
set @i = @i + 1
declare cur cursor for exec @sql
open cur
fetch cur into @qa
select @qa
close cur
deallocate cur
end
应该这样
declare @qa nvarchar(200)
declare @i int
declare @sql nvarchar(255)
set @i = 1
while @i <= 5
begin
set @sql = 'declare cur cursor for
select q' + convert(nvarchar(2), @i) + ' from ImportSurveyInfo'
set @i = @i + 1
exec(@sql)
open cur
fetch cur into @qa
select @qa
close cur
deallocate cur
end
declare
type MyCursor is REF CURSOR ;
cur MyCursor;
rst xx%rowtype;
sqlstr varchar2(400);
tablename varchar2(20);
begin
tablename := 'xx';
sqlstr := 'select * from ' || tablename;
--下面这句就是你想要的
open cur for sqlstr;
loop
fetch cur into rst;
exit when cur%notfound;
--做你要做的
end loop;
end;
相关文章推荐
- 如何在定义游标的时候使用动态sql语句?
- 如何在定义游标的时候使用动态sql语句
- 【原创】定义游标时使用动态SQL语句
- 如何在游标for循环中使用动态SQL语句?
- 如何在游标for循环中使用动态SQL语句?
- SQL:如何在LIKE语句中使用参数,以及动态执行SQL语句
- 如何使用动态SQL语句?
- 定义游标时使用动态SQL
- 如何让Gridview在没有数据的时候显示表头[没有使用SqlDataSource控件时]
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 为表添加排序字段 (动态SQL、游标的使用)
- 使用Core Data时如何看到所执行的SQL语句?
- Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
- 不使用动态sql语句,正确书写case when中的null处理
- sql语句在遇到字符串的时候,使用单引号
- SQL中如何将定义的变量作为列 别名 使用
- Postgresql: 动态SQL语句中不能使用Select into?
- 如何使每条sql语句都变化定义的变量
- 动态sql中使用select into语句出错问题
- iOS 使用Core Date 如何在控制台打印SQL语句