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 completeRollforward Status
Input database alias = db
Number of nodes have returned status = 1Node number = 0
Rollforward status = not pending
Next log file to be read =
Log files processed = -
Last committed transaction = 2005-11-20-10.59.23.000000DB20000I The ROLLFORWARD command completed successfully.


