最近因为工作问题,需要在DB2数据库上创建跨库视图,但从网上查了不少资料都是同一篇文章的copy,以下是本人整理总结并经过测试通过。
案例描述:
在dbname数据库中创建dbname1数据库视图。
步骤(红字标识的是可替换的内容):
1.连接数据库
connect to dbname user username using password;
2. 创建WRAPPER 的 DDL 语句
CREATE WRAPPER "DRDA"
LIBRARY 'db2drda.dll'
OPTIONS (DB2_FENCED 'N');
3. 创建SERVER 的 DDL 语句
CREATE SERVER tempserver
TYPE DB2/UDB
VERSION 8.1
WRAPPER DRDA
AUTHORIZATION "username1"
PASSWORD "password1"
OPTIONS
(DBNAME 'dbname1');
上面指定的dbname1是远程数据库的名称,username1和password1是它的用户名及密码。
4. 创建USER MAPPING 的 DDL 语句
CREATE USER MAPPING FOR db2admin
SERVER tempserver --此处tempserver名称就是步骤3创建的server
OPTIONS
(REMOTE_AUTHID 'dbname1',
REMOTE_PASSWORD 'password'
);
5. 创建跨库视图
CREATE NICKNAME PERSON FOR tempserver.PERSON;
create view SYS_PERSON as
select *
from PERSON ;
需要注意,上面语句中NICKNAME和VIEW的名称不能相同。
在上面创建跨库视图的步骤中还存在几个问题,如果有人清楚请给指点:
1. 两个数据库如果是建立在不同的机器上,步骤3、4该如何写?
2. 步骤2、3、4的语句作用是什么?