在一些包含大量查询并且在 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 这两个查询仅在“文档内容”中显示一次:
