在我的工作中,我需要运行一个 sql 来获取系统的对象,我可以找到一个关于以下链接的解决方案:why-is-this-query-not-working-in-sybase,正确的 SQL 列表如下:
DECLARE my_cursor CURSOR FOR
SELECT name
FROM sysobjects
WHERE type = 'U'
go
DECLARE @tableName VARCHAR(500)
OPEN my_cursor
FETCH my_cursor INTO @tableName
WHILE @@sqlstatus = 0
BEGIN
--Do something here
select @tableName
FETCH my_cursor INTO @tableName
END
CLOSE my_cursor
DEALLOCATE CURSOR my_cursor
上面的 SQL 在 Sysbase 中正确运行,但是当我编写一个 powershell 脚本并包含上面的 sql 时,发生了棘手的事情,我得到了以下错误:
******************* Exception type : System.Data.Odbc.OdbcException
****************** Exception message : ERROR [HY000] [MERANT][ODBC Sybase driver][SQL Server]DECLARE CURSOR must be the only statement in a query batch.
我搜索了很多但没有结果,任何人都可以帮助我吗?非常感谢。