【问题标题】:DB2 Change Database Comment fails. MostlyDB2 更改数据库注释失败。大多
【发布时间】:2018-07-26 04:42:09
【问题描述】:

我在 CentOS7 上使用 DB2 10.1。

一个非常简单的命令给出了一个错误。我正在尝试将所有数据库的 cmets 从空白更改为有意义的内容。

db2 change database mydb1 comment with "My First Database"

做起来很简单。该命令报错:

SQL0104N  An unexpected token ""My First Database"" was found following "WITH".  Expected tokens may include:  "<comment>".  SQLSTATE=42601`

重试几次出现同样的错误。然后我尝试使用 DB2 shell:

db2
change database mydb1 comment with "My First Database"

你知道什么?它奏效了。

于是,我赶紧下达了下一条命令:

change database mydb2 comment with "My Second Database"

同样的错误。

复制了 mydb1 的命令。结果:成功

复制/粘贴命令并将数据库名称更改为 mydb2。结果:失败

有什么想法吗?

【问题讨论】:

  • 如果 db2level 命令未显示 fixpack-6 (v10.1.0.6),那么您应该将一个 Db2 实例升级到该级别并重试。 V10.1 自 2017 年 9 月 30 日起不再受支持,因此如果您未处于最终修复包中,则可能会出现错误。
  • 此外,如果您在每个成功的更改注释后运行db2 terminate,请检查行为是否更改。如果失败,请检查 db2diag /diagnostics 文件以获取任何其他详细信息。
  • 好的,应该应用修订包。这是一组旧的 DB/2 和其他软件包的下载集,用于我在 VM 上重新创建的安装。

标签: database db2


【解决方案1】:

你的 shell 正在吃双引号。尝试用单引号括起来或转义它们

db2 'change database bludb comment with "A Database"'
DB20000I  The CHANGE DATABASE COMMENT command completed successfully.

db2 change database bludb comment with \"A Database\"
DB20000I  The CHANGE DATABASE COMMENT command completed successfully.

【讨论】:

  • 问题表明该症状也存在于交互式 Db2 CLP 中(即不仅存在于操作系统 shell 中)。所以这个答案可能不相关。
  • 事实证明,这里有两个问题。首先是双引号。第二个问题是 DB2 只接受 30 个字符的 DB cmets,如果键入更长的字符,则会给出此消息。
猜你喜欢
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
相关资源
最近更新 更多