运行查询后,我得到以下错误:
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 ...
IBMDASQL确实支持承诺控制;IBMDA400没有(根据http://www-01.ibm.com/support/docview.wss?uid=nas8N1014514链接)。如果表没有记入日记,则事务必须在禁用承诺控制的情况下运行。这是一种糟糕的做法。这张表应该记日记。如果它导致了严重的性能问题,几乎可以肯定是因为系统对于其工作负载来说太小或者配置不好。