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

发布于 2024-10-21 04:17:42 字数 212 浏览 5 评论 0原文

我想使用动态 sql 来选择游标的数据库名称。使用 sybase ASE 可以实现此功能或类似功能吗?

create procedure myproc
  @dbname = varchar(20) = null as

declare mycur cursor for select @dbname..mytable

... use cursor

go

I want to use dynamic sql to select the database name for a cursor. Is this or something similar possible using sybase ASE?

create procedure myproc
  @dbname = varchar(20) = null as

declare mycur cursor for select @dbname..mytable

... use cursor

go

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山人契 2024-10-28 04:17:42

您可以动态创建临时表

create procedure myproc (@dbname  ....)

as

exec ('SELECT ...... into tempdb..test FROM '+@dbName+'..mytable')

——然后

DECLARE Cursor1 for tempdb..test
open cursor 

等等

You can create dynamically a temp table
something like

create procedure myproc (@dbname  ....)

as

exec ('SELECT ...... into tempdb..test FROM '+@dbName+'..mytable')

-- and then

DECLARE Cursor1 for tempdb..test
open cursor 

etc

尘曦 2024-10-28 04:17:42

要使用动态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…

……

To use dynamic sql, first create a temp table using

Create table #mytemptab (col1 …, col2 …)

Construct the dynamic sql using the following method

DECLARE @sqlstr VARCHAR(5000)

SELECT @sqlstr=’SELECT col1, col2 FROM ‘+@table

Now insert into the temp table you created (make sure it is of the same datatypes as the sql output)

SELECT @sqlstr= ‘Insert into #mytemptab (col1, col2 …) ‘+@sqlstr

Execute sql statement (to insert data into temp table)

EXECUTE (@sqlstr)

Now use the temp table in the cursor

DECLARE mycursor CURSOR FOR SELECT col1, col2 FROM #mytemptab

OPEN…

FETCH…

……

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文