我可以在ASE中使用动态sql来声明游标

我想使用动态SQL来选择游标的数据库名称。使用sybase ASE可以实现此类似的功能吗?
create procedure myproc
  @dbname = varchar(20) = null as

declare mycur cursor for select @dbname..mytable

... use cursor

go
    
已邀请:
您可以动态创建临时表 就像是
create procedure myproc (@dbname  ....)

as

exec ('SELECT ...... into tempdb..test FROM '+@dbName+'..mytable')
- 然后
DECLARE Cursor1 for tempdb..test
open cursor 
等等     
要使用动态sql,首先要使用创建临时表
Create table #mytemptab (col1 …, col2 …)
使用以下方法构造动态sql
DECLARE @sqlstr VARCHAR(5000)

SELECT @sqlstr=’SELECT col1, col2 FROM ‘+@table
现在插入您创建的临时表(确保它与sql输出的数据类型相同)
SELECT @sqlstr= ‘Insert into #mytemptab (col1, col2 …) ‘+@sqlstr
执行sql语句(将数据插入临时表)
EXECUTE (@sqlstr)
现在使用游标中的临时表
DECLARE mycursor CURSOR FOR SELECT col1, col2 FROM #mytemptab

OPEN…

FETCH…
......     

要回复问题请先登录注册