DB2 CLP 内联注释

DB2 CLP Inline Comments

我们在 DB2 CLP 中看到带有内联注释的错误。有谁知道 DB2 命令行处理器支持哪些内联注释语法? 我们看过 DB2 LUW 10.5 Comment Syntax 篇文章,我们写的是这样的:

SELECT * FROM sysibm.sysdummy1; --IGNORE-THIS

它在我们尝试过的工具(例如 IBM Data Studio)中工作,但我们的 DBA 报告说它在 DB2 CLP 中失败(db2)。

这个有效:

create table testtab (column1 char(1), --IGNORE-THIS
 column2 char(1) )
DB20000I  The SQL command completed successfully.

这不是:

grant select on table testtab to user someName;  --IGNORE-THIS 
db2 -tvf test.sql

DB21007E  End of file reached while reading the command.

有人知道这里出了什么问题吗?

好像只是CLP的一个特性(限制),和你描述的CLP不一致。可能值得 PMR。换句话说,交互式 CLI (db2cli) 让我 运行 SQLExecDirect() 成功,如果语句有终止符后跟内联注释。 jdbc 驱动程序还接受内联注释(正如您在 Data Studio 中发现的那样)。指定 CLP -f 选项的文档 link 仅当行中的第一个非空白字符为 -- 或 /* 时才允许注释:here

不确定这是否相关,但是 ; -- 曾经被引入作为一种能够用 -tf 而不是 -- 说 -- 创建 triggers/function/procedures 的手段-td@ -f

我依稀记得我曾在一个旧的 Usenet post 上问过这个问题,经过一番搜索后我找到了它: https://groups.google.com/d/msg/comp.databases.ibm-db2/goEiaG3jsAI/O9dOf4oISRUJ

原来 post 是 2004 年 2 月的:-)