SQL中是否有与iSeries OVRDBF命令等效的命令?

时间:2009-02-04 18:04:31

标签: sql ibm-midrange control-language

我在SQL环境中要求在特定情况下,对过程中对表(或视图)A的所有引用实际上都使用表(或视图)B。在iSeries上我会使用OVRDBF命令覆盖引用表A与表B:OVRDBF文件(A)文件(B)。在SQL中与此相同的是什么?有吗?

我的目标是最终得到一个不知道覆盖的程序。我不希望在满足某些条件时指示表B处理的过程中的条件逻辑。愿景:

在典型情况下:只需调用程序

即可

在特定的替代情况下:执行等效的OVRDBF,然后调用过程

2 个答案:

答案 0 :(得分:1)

不确定哪个SQL环境支持哪些选项:

我相信DB2有一个CREATE ALIAS语句。在别名上写SQL。

另一种可能性:对视图运行查询:在哪里执行OVRDBF,删除视图并在所需的表上重建它。

答案 1 :(得分:1)

如果Ed提到你是否可以修改你的程序:

1)为文件(A)

创建别名
CREATE ALIAS XYZ FOR A

2)修改程序以引用XYZ而不是A。

3)运行程序时使用文件B执行

DROP ALIAS XYZ;
CREATE ALIAS XYZ FOR B;
CALL PROCEDURE;
DROP ALIAS XYZ;
CREATE ALIAS XYZ FOR A;

如果你无法修改程序,而且你不担心同时访问表A,你可以使用:

RENAME TABLE A TO C;
CREATE ALIAS A FOR B;
CALL PROCEDURE;
DROP ALIAS A;
RENAME TABLE C TO A;