如何在System z上的DB2中创建模式别名?

时间:2011-10-14 06:30:57

标签: schema odbc db2 alias mainframe

我们用于开发的报告工具包的一部分被配置为始终使用相同的模式(比如XYZZY)。

但是,某些客户已将其数据存储在不同的架构PLUGH中。 DB2 / z中是否有任何方法可以对整个架构 XYZZY进行别名以引用架构PLUGH中的对象?

报告工具包使用DB2 Connect Enterprise Edition或Personal Edition 9.1驱动程序在ODBC之上运行。

我知道我可以为表和视图设置单独的别名,但是我们有很多数百个这些数据库对象,这样做很麻烦。简单地让DB2自动神奇地翻译整个模式会更容易。

请记住,我们不希望能够使用多个模式运行,我们只想要一种方法将所有数据库对象请求重定向到一个名称不同的模式。

当然,如果有一种方法可以在每个连接的基础上获得多个模式,那也会很好。但我没有帮助。

1 个答案:

答案 0 :(得分:2)

我猜这是通过DB / 2 schema 你的意思是在两个部分对象名称中的限定名称。对于 例如,如果是两个 部分表名称为:PLUGH.SOME_TABLE_NAME。您希望将XYZZY定义为 PLUGH的别名,因此报告程序可以将表格称为XYZZY.SOME_TABLE_NAME

我不知道如何直接这样做(据我所知,模式名称不会占用别名)。 您必须定义单个别名的异议 使用类似的东西:

CREATE ALIAS XYZZY.SOME_TABLE_NAME FOR PLUGH.SOME_TABLE_NAME 

是有数百个要做的真正的痛苦。你有没有想过 使用SELECT对DB / 2目录生成CREATE ALIAS语句 你需要引用的每个对象?类似的东西:

SELECT 'CREATE ALIAS XYZZY.' || NAME || ' FOR PLUGH.' || NAME
FROM SYSIBM.SYSTABLES
WHERE CREATOR = 'PLUGH'

将输出捕获到文件中然后执行它。可能有数百个命令, 但至少你不必写它们。