我是007 发表于 2016-11-13 09:43:50

DB2 SQL PL介绍


DB2 SQL PL
  SQL PL是DB2所支持的过程化语言,它是SQL/PSM标准的一个子集。其根据应用范围不同,又分为Inline SQL PL,Embeded SQL PL和Compiled SQL PL。
Inline SQL PL
  适用范围:触发器、函数和方法,支持部分SQL PL,使用时要注意一些限制
  语法规则:BEGIN ATOMIC ... END
Embeded SQL PL
  适用范围:嵌入式,配合宿主语言一起使用,有点类似于PowerBuilder编程形式
  语法规则:BEGIN COMPOUND STATIC ... END
Compiled SQL PL
  适用范围:支持所有的SQL PL
  语法规则:BEGIN ... END
SQL Routine
  包括过程、函数和方法(method),所谓的方法就是按照目的不同而创建出的概念,用于操作某个自定义类型(CREATE TYPE ...)的方法,有些类似于PL/SQL的面向对象概念。
DB2对PL/SQL的支持
  DB2支持Oracle的PL/SQL,但在默认情况下这个功能是被关闭的,只有通过手动打开。
  启动步骤:
  db2start
  db2set DB2_COMPATIBILITY_VECTOR=ORA
  db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
  db2stop
  db2start
  db2 CREATE DATABASE DB
  测试结果:
  CONNECT TO DB;SET SQLCOMPAT PLSQL;-- Semicolon is used to terminate-- the CREATE TABLE statement:CREATE TABLE t1 (c1 NUMBER);-- Forward slash on a new line is used to terminate-- the CREATE PROCEDURE statement:CREATE OR REPLACE PROCEDURE testdb(num IN NUMBER, message OUT VARCHAR2)ASBEGININSERT INTO t1 VALUES (num);message := 'The number you passed is: ' || TO_CHAR(num);END;/CALL testdb(100, ?);
页: [1]
查看完整版本: DB2 SQL PL介绍