13、多字段条件查询和修改: 表A中的字段有actno, cnlno,bal,pwd;表B中的字段为Actno,Cnlno,TxnAmt;目的是将A表中的bal修改为B表中的TxnAmt,命令: db2 "update A set bal=(select txnamt from B where actno=A.actno and cnlno=A.Cnlno) where A.actno||A.cnlno in (select Actno||cnlno from B );
14、多条件匹配查询 查询某个表中条件是B?AAA的记录: db2 "select * from A where actno like 'B_AAA%'". 查询数据中存在某些字符的记录: db2 "select * from A where actno like '%-AAA%".
15/数据库恢复的处理 进行数据库恢复的时候使用以下的命令:
restore db db1 to /tstdb2/catalog into db newlogpath /tstdb2/db2log buffer 2048 replace existing redirect parallelism 16; set tablespace containers for 1 using (path '/tstdb2/db2tmp'); set tablespace containers for 2 using (device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440, device '/dev/rtstcontlv02' 2621440, device '/dev/rtstcontlv03' 2621440 ) ; restore db db1 continue;
恢复完成以后执行命令db2s时报如下的错误:
P570:>db2s SQL1117N A connection to or activation of database "DB" cannot be made because of ROLL-FORWARD PENDING. SQLSTATE=57019 DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL1024N A database connection does not exist. SQLSTATE=08003
解决办法如下:
P570:>db2 rollforward db db to end of logs and complete
Rollforward Status
Input database alias = db Number of nodes have returned status = 1
Node number = 0 Rollforward status = not pending Next log file to be read = Log files processed = - Last committed transaction = 2005-11-20-10.59.23.000000
DB20000I The ROLLFORWARD command completed successfully.