Home > Dataroom > News Letter
 
Download
News Letter
Site Link
XpertMon ???? 60? - DB2 9.7 ??? ??
2010/02/10 14:49 13925

DB2 9.7 ??? ?? ?? ????(Autonomous Transactions)

 

1. ??

 DB2 V9.7? ??? ??? ?? ????? ?? ?? ?? ??? ?? ??? ?????.

?? ????? DB ??? ? ????? ??? ?????? ??? ? ????.

 ??? ?? ?? ???? ??? ?? ? ? ??? ????, ??? ??? DB2 V9.7 LUW ??? ?????.

 

2. ?? ????? ?? ??

 ?? ????? ???? ????? ?? ??? ??? ?? ?? ?? ?? COMMIT, ROLLBACK ??? ??? ????. ??? ???, ??? ??? COMMIT, ROLLBACK? ?? ?? ???? ?? ??? ?? ??? ?? ???.

 

 ?? ?? ??? ???? ??? ??? ???? ???? ???? ??? ???, ?? ???? ???? ?? ?? ??? ?? ???? ??? ?????.

 

3. ?? ???? ???

 DB2 ???? ?? ????? ?? ????? ?? ?????. CREATE PROCEDURE ?? AUTONOMOUS ???? ?? ?? ????? ??? ? ????. [? 1. ??]

? 1. CREATE PROCEDURE ?? ?

CREATE OR REPLACE your_procedure_name

LANGUAGE SQL

AUTONOMOUS

BEGIN

                do autonomous work ;

END

 

 ?? ????? ????? ??? ??? ?? ???? ???? ??? ???. ?? ?? ????? ?? ????? comit? ????, ? ??? ?? rollback? ?? ???. ?? ????? ???? ?????.

 

4. ? ?? ?

 [????] B ????? ???? ??? ?? ??? ?? ?? ?? ?? ??? ??? ??? ????. ??? B ?? ?????? ???? ?? ???? ???? ?????? ?? ???? ????? ???????. ? ???? ?????? ???? ?? ??? ???? ???ID, ??? ??? ?? ??, ?? ??? ??? ?? ??? ???????.

 

 

Ø     ?? ? ?? ??

l     ??????? ??? ?? ??? ?.

l     Auto commit? off ???

l     ?? ??? ??? ??? ????? ?? ??? ?? ??? ‘%’? ??

l     ??? ‘DB2 CLP(Command Line Processor) ??? ????, ??? ?? CLP ???? ?????.

db2 +c –td% -f <???>

 

4.1. ??? ??

 ?? ???? ?? ??? ???. ? ?? ????? ??? ?? ??? ??? ??, ?? ????? ?? ?? ?? ??? ?????. [? 2. ??]

? 2. ??? DDL

   DROP TABLE customerSensitiveInfo %

   CREATE TABLE customerSensitiveInfo (

           customerAccountNumber    integer,

           amountOverdue             integer) %

 

   DROP TABLE log_table %

   CREATE TABLE log_table (

           queryingEmployeeID        varchar(100),

           customerAccNumber        integer,

           when                      timestamp) %

 

   COMMIT %

 

???? ?? ??? ?? ?? ? log_table? ???? ????? ?????. [? 3. ??]

? 3. LOG ??? ??? ?? ????

CREATE OP REPLACE PROCEDURE log_query

(in queryingEmployee varchar(100), in accNumber integer, in when timestamp)

LANGUAGE SQL

BEGIN

             Insert into log_table values (queryingEmployee, accNumber, when) ;

END %

 

COMMIT %

 

B ?? ?????? ???? get_AmountOverdue ????? ?? customerSeneitiveInfo ???? ?? ???? ??? ??? ? ?? ??? ??? ?? log_query ????? ????? ?????. [? 4. ??]

? 4. get_AmountOverdue ????

   CREATE OR REPLACE PROCEDURE get_AmountOverdue

   (in accountNumber integer, out overdue integer)

   LANGUAGE SQL

   BEGIN

         DECLARE due integer ;

         DECLARE currentTime timestamp ;

 

         SET currentTime = CURRENT TIMESTAMP ;

 

         CALL log_query(CURRENT USER, accountNumber, currentTime) ;

 

         SELECT amountOverdue INTO due FROM customerSensitiveInfo

                WHERE customerAccountNumber=accountNumber ;

 

         SET overdue=due;

   END %

 

   COMMIT %

 

Get_AmountOverdue ?????? ??? ??? customerSensitiveInfo ???? ??? ?? ??? ????? ?????. [? 5. ??]

? 5. ?? ??? ??

   INSERT INTO customerSensitiveInfo VALUES (123435, 10000), (12346, 20000) %

   COMMIT %

 

??? ?? ???? ? ?? ??? ??? ?????. [?? 1. ??]

?? 1 . CustomerSensitiveInfo



 

?? get_AmountOverdue ????? ?? ‘12345’ ??? ?? ??? ?? ? ??? ?????. ?? ? ?? ROLLBACK ??? ?? ??? ? ?? ??? ???? ?? ?? ??? ????. [?? 2. ??]

?? 2. ?? ?? ?? ? ?? ?? ??



 

?? ?? ?? ? ROLLBACK? ??? ?? log_table? ?? ??? ?? ?? ?? ?? ??? ???. ?? log_query ????? AUTONOMOUS ???? ???? ?? ????? ? ?? ? ?????. [? 6. ??]

? 6. ?? ????? ???? log_query ????

CREATE OP REPLACE PROCEDURE log_query

(in queryingEmployee varchar(100), in accNumber integer, in when timestamp)

LANGUAGE SQL

AUTONOMOUS

BEGIN

             Insert into log_table values (queryingEmployee, accNumber, when) ;

END %

 

COMMIT %


?? ??? ?? ?? ?? ? ??? ?????. [?? 3. ??]

?? 3. AUTONOMOUS ?? ? log_table ?? ??




?? ??? ?? rollback ?? ????? ?? ????? log_table?? commit ? ?? ?? ?? ?? ? ? ????. ? ?? ??? ????? ?? ?? ?? ??? ????? ??? ??? ?? ??? ?? ?? ????.

XpertMon ???? 61? - Data Compr... ITEG 2010-02-24 12911
- XpertMon ???? 60? - DB2 9.7 ??... ITEG 2010-02-10 13925
XpertMon ???? 59? - DB2 V9.7 ?... ITEG 2010-01-28 13895
List Write Modify