Question & Answer
Question
当我在DB2中LOAD一个CSV文件后试图访问一个表时,得到了 "SQL0290N 表スペース・アクセスが許されていません。 SQLSTATE=55039"错误会发生。
Cause
表空间LOAD后处于Load pending状态。
Answer
$ db2 list tablespaces show detail
执行后显示以下基本信息。
- 表空间ID
- 名称
- 类型(系统或数据库管理的空间)
- 内容(所有数据、长表或索引数据、或临时数据)
- 状态: 一个十六进制值,表示表空间的当前状态。表空间的外部可见状态是特定状态值的十六进制值之和。例如,如果状态为 "quiesced:EXCLUSIVE "和 “Load pending”,则值为0x0004+0x0008,或0x000c。db2tbst(获取表空间状态)命令可以用来检索与特定十六进制值相关联的表空间状态。下面是sqlutil.h中给出的位定义。
0x0 Normal
0x1 Quiesced: SHARE
0x2 Quiesced: UPDATE
0x4 Quiesced: EXCLUSIVE
0x8 Load pending
0x10 Delete pending
0x20 Backup pending
0x40 Roll forward in progress
0x80 Roll forward pending
0x100 Restore pending
0x100 Recovery pending (not used)
0x200 Disable pending
0x400 Reorg in progress
0x800 Backup in progress
0x1000 Storage must be defined