0

运行查询后,我收到以下错误:

OLE DB provider "IBMDASQL" for linked server "DB2400OLEDB" returned message "SQL7008: TABLE1 in STAGING not valid for operation.
Cause . . . . . :   **The reason code is 3.** 
 Reason codes are: 
1 -- TABLE1  has no members. 
2 -- TABLE1  has been saved with storage free. ***
3 -- TABLE1  not journaled, no authority to the journal, or the journal state is *STANDBY.  Files with an RI constraint action of CASCADE, SET NULL, or SET DEFAULT must be journaled to the same journal.***
4 and 5 -- TABLE1  is in or being created into production library but the user has debug mode UPDPROD(*NO). 
6 -- Schema being created, but user in debug mode with UPDPROD(*NO).
7 -- A based-on table used in creation of a view is not valid. Either the table is program described table or it is in a temporary schema. 
8 -- Based-on table resides in a different ASP than ASP of object being created. 
9 -- Index is currently held or is not valid. 
10 -- A constraint or trigger is being added to an invalid type of table, or the maximum number of triggers has been reached, or all nodes of the distributed table are not at the same release level. 
11 -- Distributed table is being created in schema QTEMP, or a view is being created over more than one distributed table.
12 -- Table could not be created in QTEMP, QSYS, QSYS2, or SYSIBM because it contains a column of type DATALINK having the FILE LINK CONTROL option.
13 -- The table contains a DATALINK column or a LOB column that conflicts with the data dictionary.
14 -- A DATALINK, LOB, or IDENTITY column cannot be added to a non SQL table.
15 -- Attempted to create or change an object using a commitment definition in a different ASP.
16 -- Sequence TABLE1  in STAGING was incorrectly modified with a CL command.
17 -- The table is not usable because it contains partial transactions. Recovery  . . . :
   Do one of the following based on the reason code:
   1 -- Add a member to TABLE1  (ADDPFM).
   2 -- Restore TABLE1  (RSTOBJ). 3 -- Start journaling on TABLE1 (STRJRNPF), get access to the journal, or change the ...
4

1 回答 1

2

IBMDASQL 确实支持承诺控制;是 IBMDA400 没有(根据http://www-01.ibm.com/support/docview.wss?uid=nas8N1014514链接)。如果表没有被记录,那么事务必须在禁用提交控制的情况下运行。这是一个不好的做法。该表应该被记录。如果它导致严重的性能问题,那几乎可以肯定是因为系统对于它的工作负载来说太小了,或者它的配置很差。

于 2014-03-17T12:07:58.623 回答