繁体   English   中英

有没有办法在 Oracle 中将物化视图从一个 DB 服务名称复制/移动到另一个?

[英]Is there a way to copy/move materialised view from one DB service name to another in Oracle?

所以我想要的是在我的服务中创建物化视图,但是从 Oracle 的另一个服务中的表中创建。 但由于表名有点大,我不能这样做。 因此,正在考虑解决方法以仅在表所在的同一服务中创建物化视图,然后将视图移动/复制到我的服务中。 有这样的方法吗?

  • 你把什么叫做“服务”? 我觉得更合适的术语是“数据库”或“模式”
  • “表名有点大”是什么意思?
    • 是关于长表名吗? 例如,表emp的长度为 3 个字符。 你的……有多少?
    • 还是您的意思是说它们包含很多行? Scott 的示例模式中的emp包含 14 行。 你有多少行?
    • 为什么这些都会阻止你做你计划做的事情?

无论如何:如果它是关于另一个数据库,那么你将不得不使用一个数据库链接 如果它与另一个模式有关,那么(这些表的)所有者将必须向您授予select特权。

只要您在同一个网络中,您就可以在“源”模式/数据库中创建物化视图并从其他任何地方访问它。 数据库链接(或者,在更简单的情况下,授予)将使您能够做到这一点。

通常,我们在自己的模式中创建物化视图并访问驻留在其他地方的源表。 如果物化视图包含大量数据并且其查询需要很长时间执行,那么刷新也可能需要相当长的时间。 Oracle 允许您选择刷新数据的方式(例如,一天一次 - 晚上 02:00,因为当时没有人在工作,所以刷新需要 2 小时或...) .

如果由于某种原因您不能这样做,则在源表所在的位置创建它并通过数据库链接访问物化视图本身(或通过在其名称前加上其所有者的名称,或在您的模式中创建同义词(或甚至可能是公共同义词)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM