我需要获取所有连续更改的值并在其他“审计”表上发布修改。我可以在不为行中的每个元素编写条件的情况下完成此操作吗?我知道来自http://www.firebirdfaq.org/faq133/的 SQL,它为您提供了所有验证条件:
select 'if (new.' || rdb$field_name || ' is null and old.' ||
rdb$field_name || ' is not null or new.' || rdb$field_name ||
'is not null and old.' || rdb$field_name || ' is null or new.' ||
rdb$field_name || ' <> old.' || rdb$field_name || ') then'
from rdb$relation_fields
where rdb$relation_name = 'EMPLOYEE';
但这应该写在触发器中。所以,如果我改变一个表,那么我需要修改触发器。
由于 FireBird 不允许动态增加 varchar 变量的大小,我正在考虑将所有值转换并连接到一个大的 varchar 变量中,然后再将其插入文本 blob。
有没有可能在不使用GTT的情况下做到这一点?