技术开发 频道

从Oracle向DB2迁移的策略以及非常好的实践

  4、 并发控制比较

  1) Oracle默认情况

  语句级快照。

  2) DB2 V9.7之前默认情况

  游标稳定隔离级别。

  3) DB2 V9.7目前默认情况

  当前提交隔离级别。

  5、 创建兼容Oracle的DB2数据库

Db2set DB2_COMPATIBILITY_VECTOR=ORA
Db2stop force
Db2start
Db2 “
CREATE DATABASE dbName AUTOMATIC STORAGE YES
ON <storagePath1> PAGESIZE 32 K”

Recommended but
not required
Db2
UPDATE DB CFG FOR dbName
USING AUTO_REVAL deferred_force
DECFLT_ROUNDING round_half_up

  6、 DB2中的PL/SQL代码

CREATE PACKAGE sample IS
TYPE emps_array
IS VARRAY(30) OF VARCHAR2(6);

PROCEDURE get_dept_emp (
Dno
IN emp.deptno%TYPE DEFAULT 1,
Emps_dno OUT emps_array );
END sample;
/
CREATE PACKAGE BODY sample IS
PROCEDURE get_dept_emp (
Dno
IN emp.deptno%TYPE,
Emps_dno OUT emps_array)
IS
BEGIN
IF dno IS NOT NULL THEN
SELECT empno BULK COLLECT INTO emps_dno FROM emp WHERE deptno=dno;
FOR x in emps_dno.FIRST .. emps_dno.LAST LOOP
DBMS_OUTPUT.PUT_LINE(emps_dno(x));
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘SQLCODE: ’
|| SQLCODE);
END get_dept_empno;
END sample;
/

CREATE TYPE emp_dept
IS TABLE OF emp%ROWTYPE;
0
相关文章