DB2 10.5 for Linux, UNIX, and Windows

Oracle 数据库链接语法

设置 DB2_COMPATIBILITY_VECTOR 注册表变量以支持 Qracle 数据库链接语法时,可与远程数据库、表或视图连接。

启用

通过将 DB2_COMPATIBILITY_VECTOR 注册表变量设置为十六进制值 0x20000(位位置 18)来启用 Oracle 数据库链接语法支持,然后停止该实例并将其重新启动以使新设置生效。
db2set DB2_COMPATIBILITY_VECTOR=20000
   db2stop
   db2start

要充分利用 Oracle 应用程序的 DB2 兼容性功能部件,DB2_COMPATIBILITY_VECTOR 的推荐设置是 ORA,这将设置所有兼容性位。

数据库链接语法使用 @(at 符号)以指示内部或成员资格条件。例如,要使用指向 stock 的数据库链接访问模式 user 下的远程对象 pencils,可使用:
SELECT * FROM user.pencils@stock;
注: 在普通标识符中,DB2 系统支持将 @ 字符用作有效的字符。例如,可以创建将 pencils@stock 用作其名称的表。启用数据库链接支持时,将 @ 字符视为表、视图和列引用中的特殊定界符。如果要在启用链接支持时使用数据库对象名称中的 @,那么必须用双引号引上该名称。

示例

远程对象引用会格式化为:
<schema_name>,<object_name>@<server_name>
还可以包括列引用:
<schema_name>,<object_name>,<column_name>@<server_name>
下列 SELECT 语句查询名为 EMPLOYEE 的远程表:
SELECT birthdate FROM rschema.employee@sudb WHERE firstname='SAM'
SELECT rschema.employee.birthdate@sudb FROM rschema.employee@sudb
WHERE rschema.employee.firstname@sudb ='SAM'
还可以针对远程表发出 UPDATE、INSERT 和 DELETE 语句:
UPDATE rschema.employee@sudb SET firstname='MARY'
INSERT INTO rschema.employee@sudb VALUES ('Bob')
DELETE FROM rschema.employee@sudb