代码之家  ›  专栏  ›  技术社区  ›  tony

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

  •  0
  • tony  · 技术社区  · 9 年前

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

    db2“truncate table MYSCHEMA.TABLEA immediate”

    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".
    

    有人能告诉我我做错了什么或者我错过了什么吗?我试图简单地从一个表中截断,并得到以下错误消息。不知道我做错了什么。我尝试过使用/不使用引号,使用/不带模式,使用/没有立即数。我也在命令编辑器中尝试过(删除db2和引号),但仍然无法工作。我正在使用: DB2/AIX64 9.7.9 此外,我有删除权限,因为我可以删除记录,但我想截断。

    提前感谢!

    3 回复  |  直到 9 年前
        1
  •  1
  •   mustaccio Gandalf    9 年前

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

    无法截断表MYSCHEMA.TABLA,因为DELETE触发器 存在,或者该表是引用中的父级 限制

    如通常, in the fine manual .

        2
  •  0
  •   esky2000    9 年前
    ALTER TABLE MYSCHEMA.TABLEA ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE
    

    import from /dev/null of del replace into MYSCHEMA.TABLEA
    
        3
  •  0
  •   Seb.B.    9 年前

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