WEB开发网
开发学院数据库DB2 DB2 9.5 SQL Procedure Developer 认证考试 735 准... 阅读

DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第5部分

 2010-02-18 15:01:11 来源:WEB开发网   
核心提示:MERGE 语句使用MERGE 语句组合有条件更新、插入或删除操作MERGE 语句 使用来自源表的数据更新目标表或可更新视图,在一次操作期间,DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第5部分(3),可以对目标表中与源表匹配的行进行更新或删除,同时插入目标表中不存在的行,调

MERGE 语句

使用MERGE 语句组合有条件更新、插入或删除操作

MERGE 语句 使用来自源表的数据更新目标表或可更新视图。在一次操作期间,可以对目标表中与源表匹配的行进行更新或删除,同时插入目标表中不存在的行。

例如,假设 EMPLOYEE 表是目标表,其中包含关于一家大公司的职员的最新信息。分支机构办公室通过维护自己的EMPLOYEE 表版本 MY_EMP 来更新本地职员记录。通过使用MERGE 语句,可以用MY_EMP 表中的信息更新 EMPLOYEE 表,MY_EMP 表作为合并操作的源表。

下面的语句把职员编号为 000015 的新职员记录插入 MY_EMP 表中。

清单 6. 插入新职员的记录

INSERT INTO my_emp (empno, firstnme, midinit, lastname, workdept,
phoneno, hiredate, job, edlevel, sex, birthdate, salary)
VALUES ('000015', 'MARIO', 'M', 'MALFA', 'A00',
'6669', '05/05/2000', 'ANALYST', 15, 'M', '04/02/1973', 59000.00)

下面的语句把职员编号为 000010 的现有职员的更新工资数据插入 MY_EMP 表中。

INSERT INTO my_emp (empno, firstnme, midinit, lastname, edlevel, salary)
VALUES ('000010', 'CHRISTINE', 'I', 'HAAS', 18, 66600.00)

现在,插入的数据只存在于 MY_EMP 表中,因为它还没有与 EMPLOYEE 表合并。清单 7 给出的MERGE 语句获取 MY_EMP 表的内容并把它们合并到 EMPLOYEE 表中。

清单 7. MERGE 语句

MERGE INTO employee AS e
USING (SELECT
empno, firstnme, midinit, lastname, workdept, phoneno,
hiredate, job, edlevel, sex, birthdate, salary
FROM my_emp) AS m
ON e.empno = m.empno
WHEN MATCHED THEN
UPDATE SET (salary) = (m.salary)
WHEN NOT MATCHED THEN
INSERT (empno, firstnme, midinit, lastname, workdept, phoneno,
hiredate, job, edlevel, sex, birthdate, salary)
VALUES (m.empno, m.firstnme, m.midinit, m.lastname,
m.workdept, m.phoneno, m.hiredate, m.job, m.edlevel,
m.sex, m.birthdate, m.salary)

这里给源表和目标表分配了关联名,从而避免搜索条件中的表引用出现歧义。此语句指定 MY_EMP 表中应该考虑的列。语句还指定在 MY_EMP 表中的行与 EMPLOYEE 表匹配和不匹配时分别执行的操作。

现在,对 EMPLOYEE 表执行以下查询会返回职员 000015 的记录:

SELECT * FROM employee WHERE empno = '000015'

以下查询返回职员 000010 的记录,其中的SALARY 列包含更新后的值:

SELECT * FROM employee WHERE empno = '000010'

系统过程 ADMIN_CMD

DB2 在 SYSPROC 模式中提供 ADMIN_CMD过程,从而允许使用CALL 语句从应用程序或另一个过程直接运行管理命令。不能从 UDF 或触发器调用此过程。

ADMIN_CMD 有一个 CLOB(2M) 类型的输入参数,其中包含要执行的一个管理命令。调用此过程的语法如下: CALL ADMIN_CMD(command_string);

当前,此过程支持许多 DB2 v9.5 管理命令。下面是最常用的管理命令:

DESCRIBE

EXPORT

FORCE APPLICATION

IMPORT

LOAD

REORG INDEXES/TABLE

RUNSTATS

UPDATE DATABASE CONFIGURATION

在 IBM DB2 9.5 Information Center 上可以找到支持的命令的完整列表。

上一页  1 2 3 4 5  下一页

Tags:DB SQL Procedure

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