我们看到了带有内联注释的DB2 CLP中的错误。有人知道在DB2命令行处理器中支持什么内联注释语法吗?我们看了DB2 LUW10.5注释语法的文章,我们写了这样的东西:
SELECT * FROM sysibm.sysdummy1; --IGNORE-THIS
它适用于我们尝试过的工具(例如IBM ),但是我们的DB2报告说它在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.有人知道这是怎么回事吗?
发布于 2017-08-01 16:46:16
这似乎只是CLP的一个特性(限制),而且正如您所描述的那样,CLP是不一致的。可能值得一次PMR。换句话说,交互式CLI (db2cli)允许我成功地运行SQLExecDirect(),如果语句中有终止符,然后是内联注释。jdbc驱动程序还接受内联注释(正如您在Data中发现的那样)。指定为CLP -f选项的doc链接仅在行中的第一个非空白字符为-或/*为:这里时才允许注释。
发布于 2018-11-12 12:12:57
不确定这是否相关,但; --曾经作为一种手段引入,以便能够使用-tf创建触发器/函数/过程,而不是--比方说-- -td@ -f。
我隐约记得有一篇关于这件事的老Usenet帖子,经过一番搜索,我找到了它:https://groups.google.com/d/msg/comp.databases.ibm-db2/goEiaG3jsAI/O9dOf4oISRUJ
原来该职位是从2004年2月开始的:-)
https://stackoverflow.com/questions/45440282
复制相似问题