我们在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.
有谁知道这里有什么问题?
答案 0 :(得分:1)
它似乎只是CLP的一个功能(限制),并且CLP与您描述的不一致。可能值得PMR。换句话说,如果语句具有终止符后跟内联注释,则交互式CLI(db2cli)允许我成功运行SQLExecDirect()。并且jdbc驱动程序也接受内联注释(正如您在Data Studio中找到的那样)。指定CLP -f选项的doc链接仅在行上的第一个非空白字符为 - 或/ *为here
时才允许注释答案 1 :(得分:0)
不确定是否与此相关,但是; --
曾被作为一种手段来使用-tf
而不是-例如-{{ 1}}。
我隐约想起了Usenet的一则老帖子,问了这个问题,经过一番搜索,我发现了它: https://groups.google.com/d/msg/comp.databases.ibm-db2/goEiaG3jsAI/O9dOf4oISRUJ
原来,该帖子来自2004年2月:-)