创建表视图 (数据管理)

摘要

根据输入表或要素类创建表视图。由于此工具创建的表视图是临时性的,如果不保存文档,该图层将在会话结束后消失。

使用情况

  • 此工具通常用于创建包含所选属性或字段集的表视图。

  • 如果使用了 SQL 表达式但却没有返回任何内容,则输出为空。

  • 在后续工具中将采用字段信息控件中定义的字段名。但是,如果此工具是模型中的最后一个工具,则将从磁盘的源数据中获取字段名。要保留字段名,必须使用复制行复制要素工具将新图层写出到新数据。

  • 字段名将通过指定输入工作空间来进行验证。因此,如果输入是地理数据库要素类,而输出工作空间是文件夹,则字段名可能会被截断,这是由于 shapefile 属性的名称最多只能具有十个字符。

  • 通过使用字段信息控件的可见属性,可使字段的子集在新图层中不可用。控件中的第二列提供了一个复选框,用于指定字段在新图层中是可见还是隐藏。默认情况下选中该项。取消选中该复选框以隐藏该字段。如果新建的图层是后续处理过程或工具的输入,则不能在工作流中使用隐藏的字段。如果将输出保存到磁盘,则只有列出的可见字段将显示在新数据中。

  • 字段信息控件中的分割策略选项不适用于此工具。

参数

标注说明数据类型
输入表

输入表或要素类。

Table View;Raster Layer
表名

要创建的表视图的名称。

Table View ;Raster Layer
表达式
(可选)

用于选择记录子集的 SQL 表达式。

SQL Expression
输出工作空间
(可选)

用于验证字段名的输入工作空间。如果输入是地理数据库表,而输出工作空间是 dBASE 表,则字段名可能会被截断,这是由于 dBASE 字段名最多只能具有十个字符。

Workspace
字段信息
(可选)

指定输入表中的哪些字段在输出表视图中可见

Field Info

arcpy.management.MakeTableView(in_table, out_view, {where_clause}, {workspace}, {field_info})
名称说明数据类型
in_table

输入表或要素类。

Table View;Raster Layer
out_view

要创建的表视图的名称。

Table View ;Raster Layer
where_clause
(可选)

用于选择要素子集的 SQL 表达式。有关 SQL 语法的详细信息,请参阅帮助主题在 ArcGIS 中使用的查询表达式的 SQL 参考

SQL Expression
workspace
(可选)

用于验证字段名的输入工作空间。如果输入是地理数据库表,而输出工作空间是 dBASE 表,则字段名可能会被截断,这是由于 dBASE 字段名最多只能具有十个字符。

Workspace
field_info
(可选)

指定输入表中的哪些字段在输出表视图中可见

Field Info

代码示例

创建表视图 (MakeTableView) 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 MakeTableView 函数。

import arcpy

arcpy.MakeTableView_management("C:/data/input/crimefrequency.dbf", "crimefreq_tview")
创建表视图 (MakeTableView) 示例 2(独立脚本)

以下独立脚本演示了如何使用带有 FieldInfo 对象的 MakeTableView 过滤输出中的字段。

# Name: MakeTableView_Example2.py
# Description: Uses a FieldInfo object to select a subset of fields and renaming one field's name.

# Import system modules
import arcpy

# Set data path
intable = "C:/data/tables.gdb/crimefreq"

# Get the fields from the input
fields= arcpy.ListFields(intable)

# Create a fieldinfo object
fieldinfo = arcpy.FieldInfo()

# Iterate through the fields and set them to fieldinfo
for field in fields:
    if field.name == "FREQUENCY":
        fieldinfo.addField(field.name, "NEWFREQ", "VISIBLE", "")
    elif field.name == "CRIME_CAT":
        fieldinfo.addField(field.name, field.name, "HIDDEN", "")
    elif field.name == "BEAT":
        fieldinfo.addField(field.name, field.name, "VISIBLE", "")

# The created crime_view layer will have fields as set in fieldinfo object
arcpy.MakeTableView_management(intable, "crime_view", "", "", fieldinfo)

# To persist the layer on disk make a copy of the view
arcpy.CopyRows_management("crime_view", "C:/temp/newfreq.dbf")

环境

特殊情况

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题