Query from QSYS2.SysTables returns error "Token; void"
我正在尝试使用 Excel、VBA 和 ODBC 驱动程序从 AS400 DB 读取数据。连接成功,但没有一个查询正在从数据库中检索数据。例如:选择查询不起作用:
1
| select * from QSYS2.SysTables; |
客户端收到以下错误消息:
[IBM] [System i Access ODBC Driver] [DB2 for i5/OS] SQL0104 - Token; void. Valid tokens: .
我的查询有什么问题?
编辑:我试图从 AS400 读取数据,而不是从 DB2 读取数据。我想从 SysTables(系统表)中读取表名。
- 您是在谈论 DB2 数据库还是"AS400 数据库"?请发布您的实际查询,以及您尝试查询的表的架构。一些样本数据也会有所帮助。记住:sscce.org
-
@BryanH AS/400(现在称为 Power Systems 上的 IBM i)已将 DB2 集成到操作系统中。 As/400 数据库是 DB2。
删除单个语句执行的语句终止字符(;)。
-
嗨詹姆斯,感谢您的回复。我没有直接访问数据库的权限。我删除了 \\';\\' 并将应用程序发送给客户端。会尽快让你知道状态。
-
嗨,詹姆斯,刚收到客户的反馈。删除\\';\\'后它工作正常。非常感谢您的回答。
-
詹姆斯,我可以为 AS400 使用标准 SQL 吗?或者语法上有什么不同。当我在表的字段名称周围使用 [] 运行查询时,它不会提取任何数据。如果字段名称周围没有方括号,则相同的查询有效。请澄清。
-
@Sri 数据库是 DB/2 的一个版本。在字段名称周围使用方括号是 TSQL (MSSQL) 约定。 ANSI SQL 使用单引号。如有疑问,请查看文档:V7R1 SQL 参考
-
非常感谢您的快速回复。
这是一个检索查询的示例:
1
| "Select * from Tablename"; |
如果不起作用,请尝试在 Microsoft 中查看手册进行查询。它不同于标准 SQL 查询。