【问题标题】:Inserting into Table from Oracle View从 Oracle 视图插入表
【发布时间】:2016-01-28 13:12:57
【问题描述】:

我有一个动态返回来自不同表的值的视图。 每当视图添加或减少数据时,我都需要从该视图中插入或删除某个表。 我应该使用存储过程还是类似的东西

【问题讨论】:

  • 这个问题和Delphi完全没有关系,所以我把标签去掉了。这是一个严格意义上的 Oracle SQL 问题。
  • “每当视图添加或减少数据时”是什么意思?您能否提供一些用例,您如何使用它?
  • 看来您需要Materialized View
  • 视图只是对表的固定查询,它不物理存储数据。您要么需要使用物化视图,要么在视图查询的基础表上使用触发器解决方案,以识别视图内容何时发生变化。
  • 这可能会有所帮助stackoverflow.com/questions/1652995/…

标签: oracle stored-procedures sql-insert sql-view


【解决方案1】:

正如@MichaelBroughton 已经说过的,视图不会物理存储数据,并且视图不知道其基础数据何时发生变化。

我建议您考虑在基表上创建触发器并让这些触发器处理目标表的更新。如果适用于您的上下文,您当然可以有多个触发器,它们都执行完成数据传播的相同存储过程。

矩阵化视图也可以是一种解决方案,因为您可以简单地在该视图上创建触发器,但代价是实际存储视图提供的所有数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2017-01-07
    相关资源
    最近更新 更多