2017-08-01 165 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