xiuxuan 发表于 2018-9-23 10:33:32

ORACLE VS DB2

1、创建PROCEDURE的参数的区别  1)参数类型和参数名称的位置不同
  db2:    CREATE PROCEDURE PRO1 (IN OrgID int)
  oracle:CREATE PROCEDURE PRO1 (OrgID IN int)
  2)同时作为输入输出参数的写法不同
  db2:    CREATE PROCEDURE PRO1 (INOUT OrgID int)    INOUT连着写
  oracle:CREATE PROCEDURE PRO1 (OrgID IN OUT int)    IN OUT中间空格隔开,而且必须IN在OUT之前
  3)没有输入或输出参数时
  db2:    CREATE PROCEDURE PRO1 ()
  oracle:CREATE PROCEDURE PRO1 不能有空的括号
  2、变量定义和BEGIN END体的位置不同
  db2中变量定义在BEGIN END体内,并且每个变量都要用DECLARE声明;存储过程结束时,END后跟P1,并且不需要分号
  oracle中变量定义必须在BEGIN END体外,变量都不需要用DECLARE声明(有种说法是,第一个变量需要DECLARE,其他变量不需要);存储过程结束时,END后跟存储过程的名称,并且需要分号
  db2:CREATE PROCEDURE PRO1()
  LANGUAGE SQL
  P1: BEGIN
  --变量定义
  DECLARE INSERT_DATE TIMESTAMP;
  DECLARE ALLDEPT_NOVARCHAR(20);
  --具体操作
  SELECT a FROM TAB_1;
  .........
  END P1
  oracle:CREATE PROCEDURE PRO1
  IS
  --变量定义
  INSERT_DATE TIMESTAMP;
  ALLDEPT_NOVARCHAR(20);
  BEGIN
  --具体操作
  SELECT a FROM TAB_1;
  .........
  END PRO1;
  3、控制语句的不同
  db2:   IF THEN ......ELSEIF THEN .... END IF;
  oracle: IF THEN ......ELSIF   THEN .... END IF;
  4、异常处理的不同

页: [1]
查看完整版本: ORACLE VS DB2