WCS*_*per 10 sql database db2 db2-luw
我正在使用db2 9.5我已经在表中创建了一个成功创建的列,但我无法更新表列并获得以下错误
[错误]脚本行:1-1 -------------------------- DB2 SQL错误:SQLCODE:-668,SQLSTATE:57016,SQLERRMC: 7; DB2ADMIN.XCATENTRYEXT消息:表"DB2ADMIN.XCATENTRYEXT"上的原因代码"7"不允许操作.
在谷歌的一些博客/网站上我发现REORG命令作为解决方案,如下面的链接 http://bytes.com/topic/db2/answers/508869-reorg-tablespace
我已经尝试了以下查询来运行数据库来解决问题.
Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE')")
REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE
REORG TABLE DB2ADMIN.XCATENTRYEXT
REORG INDEXES I0000908 FOR TABLE DB2ADMIN.XCATENTRYEXT
Run Code Online (Sandbox Code Playgroud)
但是所有查询在结果中都有相同的错误
DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC: Database;BEGIN-OF-STATEMENT;<variable_set>
Message: An unexpected token "Database" was found following "BEGIN-OF-STATEMENT". Expected tokens may include: "<variable_set>".
Run Code Online (Sandbox Code Playgroud)
我坚持这个错误,我甚至无法更新该特定表的任何列.
Den*_*aev 18
可以通过SQL语句执行REORG:
CALL SYSPROC.ADMIN_CMD('REORG TABLE SCHEMA.TABLENAME');
Run Code Online (Sandbox Code Playgroud)
mus*_*cio 16
它从错误消息中得出,您以某种方式将整个字符串Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE')")作为SQL语句提交,这显然是不正确的.
只需在shell命令行中发出以下命令:
db2 connect to <your database name here>
db2 REORG TABLE DB2ADMIN.XCATENTRYEXT
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39458 次 |
| 最近记录: |