Part of a reporting toolkit we use for our development is configured to always use the same schema (say XYZZY).
However, certain customers have stored their data in a different schema PLUGH. Is there any way within DB2/z to alias the entire schema XYZZY to refer to the objects in schema PLUGH?
The reporting toolkit runs on top of ODBC using the DB2 Connect Enterprise Edition or Personal Edition 9.1 drivers.
I know I can set up individual aliases for tables and views but we have many hundreds of these database objects and it will be a serious pain to do the lot. It would be far easier to simply have DB2 auto-magically translate the whole schema.
Keep in mind we’re not looking for being able to run with multiple schemas, we just want a way to redirect all requests for database objects to a single, differently named, schema.
Of course, if there’s a way to get multiple schemas on a per-connection basis, that would be good as well. But I’m not helpful.
I am guessing that by DB/2 schema you mean the qualifying name in some two part object name. For
example, if a two
part table name is:
PLUGH.SOME_TABLE_NAME. You want to do defineXYZZYas analias name for
PLUGHso the reporting program can refer to the table asXYZZY.SOME_TABLE_NAME.I don’t know how to directly do that (schema names don’t take on aliases as far as I am aware).
The objection you have to defining individual alias names
using something like:
is that there are hundreds of them to do making it a real pain. Have you thought about
using a
SELECTagainst the DB/2 catalogue to generateCREATE ALIASstatements foreach of the objects you need to refer to? Something like:
Capture the output into a file then execute it. Might be hundreds of commands,
but at least you didn’t have to write them.