【问题标题】:Query from QSYS2.SysTables returns error "Token; void"来自 QSYS2.SysTables 的查询返回错误“令牌;无效”
【发布时间】:2013-05-07 05:08:19
【问题描述】:

我正在尝试使用 Excel、VBA 和 ODBC 驱动程序从 AS400 DB 读取数据。连接成功,但没有一个查询正在从数据库中检索数据。例如:选择查询不起作用:

select * from QSYS2.SysTables;

客户端收到以下错误消息:

[IBM] [System i Access ODBC 驱动程序] [DB2 for i5/OS] SQL0104 - 令牌;空白。有效令牌:

我的查询有什么问题?

编辑:我试图从 AS400 读取数据,而不是从 DB2 读取数据。我想从 SysTables(系统表)中读取表名。

【问题讨论】:

  • 您说的是 DB2 数据库还是“AS400 数据库”?请发布您的实际查询,以及您尝试查询的表的架构。一些样本数据也会有所帮助。记住:sscce.org
  • @BryanH AS/400(现在称为 Power Systems 上的 IBM i)将 DB2 集成到操作系统中。 As/400 数据库 DB2。

标签: db2 odbc ibm-midrange


【解决方案1】:

删除单个语句执行的语句终止字符 (;)。

【讨论】:

  • 嗨詹姆斯,感谢您的回复。我没有直接访问数据库的权限。我删除了 ';'并将应用程序发送给客户端。会尽快通知您状态。
  • 嗨,James,刚收到客户的反馈。删除';'后它工作正常。非常感谢您的回答。
  • James,我可以为 AS400 使用标准 SQL 吗?或者语法上有什么不同。当我在表的字段名称周围使用 [] 运行查询时,它不会提取任何数据。如果字段名称周围没有方括号,则相同的查询有效。请澄清。
  • @Sri 数据库是 DB/2 的一个版本。在字段名称周围使用方括号是 TSQL (MSSQL) 约定。 ANSI SQL 使用单引号。如有疑问,请查看文档:V7R1 SQL Reference
  • 非常感谢您的快速回复。
【解决方案2】:

这是一个检索查询的示例:

"Select * from Tablename";

如果不起作用,请尝试在 Microsoft 中查看手册进行查询。它不同于标准的 SQL 查询。

【讨论】:

  • 微软??这是 IBM DB2 for i。
猜你喜欢
  • 2014-05-15
  • 1970-01-01
  • 2014-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多