【问题标题】:Errors unique to Db2 SQL queriesDb2 SQL 查询特有的错误
【发布时间】:2021-10-06 04:08:55
【问题描述】:

我正在使用Hacker Rank 充分学习 SQL 以通过编码面试。

当我使用 DB2 运行在线编译器时,我注意到它出现错误。在 Oracle、MS MS SQL SERVER 或 MySQL 中不会产生错误。

下面的代码就是上面贴出的问题的解决方案。

SELECT * 
FROM City 
WHERE Countrycode = 'JPN';

它在除 Db2 之外的所有内容中返回以下内容:

1613 Neyagawa JPN Osaka 257315 
1630 Ageo JPN Saitama 209442 
1661 Sayama JPN Saitama 162472 
1681 Omuta JPN Fukuoka 142889 
1739 Tokuyama JPN Yamaguchi 107078

但由于某种原因,使用 DB2 它会返回解决方案,然后返回错误消息:

1613 Neyagawa JPN Osaka 257315 
1630 Ageo JPN Saitama 209442 
1661 Sayama JPN Saitama 162472 
1681 Omuta JPN Fukuoka 142889 
1739 Tokuyama JPN Yamaguchi 107078 

DB21034E 该命令被作为 SQL 语句处理,因为它不是有效的命令行处理器命令。在 SQL 处理期间它返回:
SQL0104N 在“k 行。*/ uncatalog”之后发现了意外的标记“数据库”。预期的标记可能包括:“JOIN ”。
SQLSTATE=42601

Db2 的使用范围有多广?如何避免此错误?

【问题讨论】:

  • 我刚试了一下,没有错误。不知道为什么你会得到那个错误。也许再试一次。 DB2 被广泛使用。事实上,SQL 是 IBM 发明的,而 db2 于 1983 年成为产品。
  • 如何在 DB2 上执行查询?直接用 DB2 命令?
  • 你必须连接到数据库: db2 connect to ; db2 "SELECT * FROM city where Countrycode = 'JPN'" !!没有结局;
  • 这可能是特定于黑客等级的网络浏览器编译器。我只是好奇为什么会在那里发生。
  • 发生 DB21034E 错误是因为命令行处理器 (CLP) 遇到意外输入。它在有问题的输入中提到了*/,这看起来是一次失败的评论尝试。根据您的 OS shell 和您使用的 Db2 脚本实用程序(CLP 与 CLPPlus),对注释的处理方式不同。

标签: sql db2


【解决方案1】:

数据库未编目时提示此错误。 Db2 需要目录才能获得正确答案。您检查数据库是否在本地目录中编目并运行该程序。在hackerrank上,我们无法检查数据库,所以它给出了错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2021-11-27
    • 2016-10-07
    相关资源
    最近更新 更多