2017-08-01 166 views
2

我们发现DB2 CLP中存在内联注释中的错误。有谁知道DB2命令行处理器支持什么内联注释语法? 我们已经看了DB2 LUW 10.5 Comment Syntax文章,我们写了这样的事:DB2 CLP内联注释

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. 

有谁知道这里有什么问题?

+0

您是指DB2 CLP?使用DB2 clp获取与DB2 V11.1.1.1相同的LUW症状。 – mao

+0

是的,命令行处理器(CLP)https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0010409.html – radumanolescu

+0

LUW文档声明CLP -f选项的注释字符必须是该行中的第一个非空白字符。但CLP接受存储过程和DDL的内联注释,但不适用于所有的语句。 – mao

回答

1

看起来它只是CLP的一项功能(限制),CLP与您所描述的不一致。可能值得PMR。换句话说,如果语句具有终结符,然后是内联注释,交互式CLI(db2cli)会让我成功运行SQLExecDirect()。而且jdbc驱动程序也接受内联注释(就像您在Data Studio中找到的一样)。指定CLP -f选项的doc链接仅允许在行上的第一个非空字符为 - 或/ *时为注释:here