首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用OPENQUERY试图通过server链接服务器从DB2 (V4R5M0)中选择x行时出错

使用OPENQUERY试图通过server链接服务器从DB2 (V4R5M0)中选择x行时出错
EN

Stack Overflow用户
提问于 2013-05-31 13:21:42
回答 2查看 1.7K关注 0票数 2

我有一个从Server 2008 R2到使用OLE DB提供程序"IBMDA400“的DB2数据库(V4R5M0)的链接服务器

链接服务器

代码语言:javascript
运行
复制
EXEC master.dbo.sp_addlinkedserver 
     @server = N'JTEST', @srvproduct=N'IBM OLE DB Provider for DB2', 
     @provider=N'IBMDA400', @datasrc=N'TestName'

这样做很好:

代码语言:javascript
运行
复制
SELECT * FROM OPENQUERY(JTEST, 'Select * from QSYS2.SYSCOLUMNS')

但是,以下语句会产生一个错误:

代码语言:javascript
运行
复制
SELECT * FROM OPENQUERY(JTEST, 'Select * from QSYS2.SYSCOLUMNS FETCH FIRST 10 ROWS ONLY')

错误

LE提供程序"IBMDA400“用于链接服务器"JTEST”,返回消息"SQL0199:关键字FETCH不期望“。有效令牌:用于使用订单联合优化。原因。。。。。:此处不需要关键字FETCH。在关键字提取时检测到语法错误。有效令牌的部分列表用于。此列表假设语句在意外关键字之前是正确的。错误可能在语句的前面,但是语句的语法在这一点上似乎是有效的。恢复正常。。。::检查指定关键字区域中的SQL语句。可能缺少冒号或SQL分隔符。SQL要求保留字在用作名称时被分隔。更正SQL语句,然后重试请求。“。Msg 7321,级别16,状态2,第1行在准备查询“从QSYS2.SYSCOLUMNS只获取前10行”时发生错误,以便针对链接服务器"JTEST“的OLE DB提供程序"IBMDA400”执行。

我认为这是因为在这个版本的DB2中只支持先取X行吗?但是,在这个版本中是否有选择有限记录集的方法?

EN

Stack Overflow用户

发布于 2013-06-01 19:52:42

first子句仅能从V5R1 OS400版本中工作。V4R5M0太老了

有一个解决办法:选择* from (

选择syscolumns.*,row_number() over()作为系统列中的nre

(由COLUMN_NAME命令)作为列

其中nre<10

你可以试试

DEpe

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16858325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档