如果可能的话,这是不确定的,但是这里......
在DB2 v9.7中,我尝试为模式中的每个表创建一个视图。
视图应包含每个列,但会再添加一个时间戳列。
即。 表1(COL1,COL2,COL3)
V_TABLE1(COL1,COL2,COL3,INS_DTTM)
TABLE2(COL1,COL4)
V_TABLE2(COL1,COL4,INS_DTTM)
这是我到目前为止所做的事情
SELECT 'CREATE VIEW V_' || NAME || ' (' ||
(SELECT LISTAGG(NAME, ', ') FROM SYSIBM.SYSCOLUMNS WHERE TBCREATOR=CREATOR) || ')
AS SELECT ' || (SELECT LISTAGG(NAME, ', ')
FROM SYSIBM.SYSCOLUMNS WHERE TBCREATOR='SCHEMA') || ', CAST(NULL AS TIMESTAMP)
AS INS_DTTM FROM ' || CREATOR || '.' || NAME
FROM SYSIBM.SYSTABLES
WHERE CREATOR = 'SCHEMA' AND NAME LIKE 'T%' ORDER BY NAME;
这是我的子选择让我感到悲伤......
我得到以下内容:
CREATE VIEW V_TABLE1 (COL1, COL2, COL3) AS SELECT COL1, COL2, COL3, CAST(NULL AS TIMESTAMP) AS INS_DTTM FROM SCHEMA.TABLE1
CREATE VIEW V_TABLE2 (COL1, COL2, COL3) AS SELECT COL1, COL2, COL3, CAST(NULL AS TIMESTAMP) AS INS_DTTM FROM SCHEMA.TABLE2
如果我的语法不合适,我会事先道歉......我正在对开发环境和互联网进行重新安排......所以我确定我犯了错误......
我希望列出的列与该行的表名相关...但LISTAGG只出现在第一行......
希望这是有道理的......如果有人有任何建议,请告诉我。
由于