问题描述:在用import导入时没有问题,用load导入时发生SQL0180N The syntax of the string representation of a datetime value is incorrect. SQLSTATE=2200
应该是数据源中的Timestamp没有毫秒(2013-10-10 00:00:00),而Timestamp的默认格式是有毫秒的,所以load不进去,但是import却能,纳闷。。。
解决:modified by 后面加上Timestampformat=\"yyyy-mm-dd hh:mm:ss\"参数设定格式
================================================================
这个只有在Linux的DB2客户端操作会出现这问题。
解决:db2 后面跟住的命令必须用双引号“”括住,如下:db2 "export to <路径下的文件名> of del modified by timestampformat=\"yyyy-mm-dd hh:mm:tt.uuuuuu\" select * from <表名>"
================================================================原因:表处于“装入挂起”状态。对此表的先前的 LOAD 尝试失败。在重新启动或终止 LOAD 操作之前不允许对表进行存取
解决:通过分别发出带有 RESTART 或 TERMINATER 选项的 LOAD 来重新启动或终止先前失败的对此表的 LOAD 操作。
1、TERMINATER的LOAD命令可以终止装入进程,使目标表恢复正常可用状态:
LOAD FROM D:/*******.DEL OF DEL TERMINATE INTO [表名]
2、RESTART的LOAD命令可以在源文件修改正确的时候使用,使装入进程重新开始:
LOAD FROM D:/*******.DEL OF DEL RESTART INTO[表名]
================================================================db2 truncate 语句
在处理truncate 语句之前,发出 COMMIT 或 ROLLBACK。
如果有任何 WITH HOLD 游标,那么将需要将其关闭。
如果语句是 SET INTEGRITY,那么除去 COMMIT THRESHOLD 子句。
否则“SQL0428N 只允许将该 SQL 语句作为工作单元的第一条语句。 SQLSTATE=25001”
只有9.7及以上版本支持truncate语句。
================================================================
报错:SQL1092N "DB2ADMIN" 没有执行所请求命令的权限
问题描述:即使将用户加入db2admin组和administrators组也不行,即使用administrator用户执行也不行。
问题解决:在db2cmd命令行下,敲入db2set DB2_GRP_LOOKUP=LOCAL,TOKENLOCAL
================================================================
报错:root运行db2start报:SQL1092N "ROOT " does not have the authority to perform the requested command.
问题描述:这是因为root的权限不够,要把root加到SYSADM_GROUP,那怎么知道SYSADM_GROUP具体是什么呢?
问题解决:使用db2用户执行下列命令:
[db2inst1@localhost ~]$ db2 get dbm cfg|grep SYSADM_GROUP
SYSADM group name (SYSADM_GROUP) = DB2IADM1
编辑/etc/group把root加到DB2GRP1组中就可以
辑文件 /etc/group,将root用户加入到与DB2相关的几个组:db2grp1, db2fgrp1, dasadm1. (好像不用)
================================================================