【发布时间】:2012-04-12 02:41:11
【问题描述】:
我正在开发一个审计跟踪模块,该模块要求我从原始表中创建一个庞大的影子表列表。我正在考虑编写一个可以从另一个表生成影子表的存储过程。该表可以是任何表,可以是包含 3 个任意数据类型字段的 table_A,也可以是包含 10 个任意数据类型字段的 table_B,并且可以基于传入存储过程的参数。
我知道我可以像这样从 syscolumns 和 systables 中检索特定 table_A 可用的字段列表:
select * from syscolumns where tabid = (select tabid from systables where tabname='table_A')
这个语句会返回一个字段列表,比如说field_A,然后我会重命名这个field_A来创建2个新字段pre_field_A和post_field_A,然后使用这2个新字段来创建shadow_table_A的影子表.将此概念应用于其他领域。不必担心字段的数据类型,因为这些信息已经存在于 syscolumns 中,我可以将其复制到影子表中。
我目前不知道如何存储从上述语句返回的值列表,因为通常任何表都包含多个字段。可以使用数组完成吗?或任何替代解决方案来创建用于审计跟踪目的的影子表?
【问题讨论】:
标签: database stored-procedures informix