在一些包含大量查询并且在 Oracle Smart View for Office 版本 11.1.2.5.520 之前创建的 Word 文档中,刷新文档中的数据时可能会出现性能问题。在某些情况下,Word 文档中的每个 Smart View 数据点都视为单独的查询,而不是根据需要重复使用现有查询。结果是刷新操作可能会非常缓慢。
如果文档包含许多重复的查询(即具有相同名称的查询),则重复的查询将显示在 Word 中的“文档内容”窗格中。例如,“文档内容”可能如下所示:
重复的查询为 SmartView14446361770
和 SmartView14446541490
。
可以运行下面的 Visual Basic 宏来删除重复的查询:
Sub DeleteExtraQueries() ' ' DeleteExtraQueries Macro ' Dim queriesName As Variant Dim uniqueQueriesName As New Collection Dim varName, newList As String Set vars = ActiveDocument.Variables For i = 1 To vars.Count varName = vars.Item(i).Name If Not StrComp(vars.Item(i).Name, "SV_QUERY_LIST", vbTextCompare) Then List = vars.Item(i).Value queriesName = Split(List, "<|>") On Error Resume Next For Each queryName In queriesName uniqueQueriesName.Add queryName, queryName Next newList = "" For Each queryName In uniqueQueriesName newList = newList & queryName & "<|>" Next newList = Left(newList, Len(newList) - 3) vars.Item(i).Value = newList End If Next End Sub
运行该宏后,SmartView14446361770
和 SmartView14446541490
这两个查询仅在“文档内容”中显示一次: