如何在DB2中截断表?错误:不是有效的命令行处理器命令

时间:2015-03-17 00:56:54

标签: sql database db2 truncate db2-luw

在DB2 CLP(命令窗口)中运行以下语句

  

db2"立即截断表MYSCHEMA.TABLEA"

DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0969N  There is no message text corresponding to SQL error "-20356" in the
message file on this workstation.  The error was returned from module
"SQLNQBE2" with original tokens "MYSCHEMA.TABLEA".

有些人可以告诉我,我做错了什么或我错过了什么?我试图简单地从单个表中截断,并且我收到以下错误消息。不确定我做错了什么。我已尝试使用/不使用引号,有/无模式,有/无立即。我也在Command Editor中尝试过(删除db2和引号)但仍然无法正常工作。我正在使用: DB2 / AIX64 9.7.9 此外,我有删除权限,因为我能够删除记录,但我想截断。

提前致谢!

3 个答案:

答案 0 :(得分:1)

您使用的DB2客户端的版本似乎与服务器的版本不匹配,这就是您无法看到SQLCODE -20356的实际错误消息的原因。如果可以的话,你会看到:

  

由于DELETE触发器,因此无法截断表MYSCHEMA.TABLEA   表存在,或者表是引用中的父表   约束

可以像往常一样in the fine manual找到进一步的解释和建议的行动。

答案 1 :(得分:0)

ALTER TABLE MYSCHEMA.TABLEA ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE

import from /dev/null of del replace into MYSCHEMA.TABLEA

答案 2 :(得分:0)

我最近也有这个问题。在我的情况下,我必须在TRUNCATE之前做一个COMMIT WORK。这解决了我的问题。请尝试告诉我们这是否有帮助。