WEB开发网
开发学院数据库Oracle 详解 Oracle 10g 中 MERGE 功能的增强 阅读

详解 Oracle 10g 中 MERGE 功能的增强

 2007-05-10 12:18:11 来源:WEB开发网   
核心提示:Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.在Oracle 10g中MERGE有如下一些改进:1、UPDATE或INSERT子句是可选的2、UPDATE和

Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.在Oracle 10g中MERGE有如下一些改进:

1、UPDATE或INSERT子句是可选的

2、UPDATE和INSERT子句可以加WHERE子句

3、在ON条件中使用常量过滤谓词来insert所有的行到目标表中,不需要连接源表和目标表

4、UPDATE子句后面可以跟DELETE子句来去除一些不需要的行

首先创建示例表:

create table PRODUCTS
  (
  PRODUCT_ID INTEGER,
  PRODUCT_NAME VARCHAR2(60),
  CATEGORY VARCHAR2(60)
  );
  insert into PRODUCTS values (1501, 'VIVITAR 35MM', 'ELECTRNCS');
  insert into PRODUCTS values (1502, 'OLYMPUS IS50', 'ELECTRNCS');
  insert into PRODUCTS values (1600, 'PLAY GYM', 'TOYS');
  insert into PRODUCTS values (1601, 'LAMAZE', 'TOYS');
  insert into PRODUCTS values (1666, 'HARRY POTTER', 'DVD');
  commit;
  create table NEWPRODUCTS
  (
  PRODUCT_ID INTEGER,
  PRODUCT_NAME VARCHAR2(60),
  CATEGORY VARCHAR2(60)
  );
  insert into NEWPRODUCTS values (1502, 'OLYMPUS CAMERA', 'ELECTRNCS');
  insert into NEWPRODUCTS values (1601, 'LAMAZE', 'TOYS');
  insert into NEWPRODUCTS values (1666, 'HARRY POTTER', 'TOYS');
  insert into NEWPRODUCTS values (1700, 'WAIT INTERFACE', 'BOOKS');
  commit;

1 2 3 4  下一页

Tags:详解 Oracle MERGE

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接