编辑表格

您可以使用“编辑表”向导创建和编辑对象,该向导可从操作中的编辑菜单(三个垂直点)以及表实体中获取。

单击“操作”菜单中的编辑将打开编辑表向导。您可以按任意顺序访问窗格以编辑表。表属性分组在多个窗格中。

  • 方案:表所在的数据库方案。
  • 名称:表的名称。
对话框中的不同窗格在以下各节中介绍:
  • 列窗格
  • 主键窗格
  • 唯一键窗格
  • 索引窗格
  • 外键窗格
  • 表约束条件窗格
  • 注释窗格
  • 存储窗格
  • 外部表属性窗格
  • 实体化视图窗格
  • DDL 窗格
  • 输出窗格

列窗格

为表中的每个列指定属性。

“一般信息”选项卡

列出表中可用的列。要添加列,请单击添加列 (+) 。将在下表中添加新的一行。选择行并输入列的详细信息。要删除列,请选择该行,然后单击删除列 (-) 。要向上或向下移动表中的列,请选择该列并使用向上箭头和向下箭头图标。
  • 名称:列的名称。
  • 数据类型:列的数据类型。
  • 默认值:如果未指定值,则默认值为 NULL。
  • 默认值为 NULL :适用于 Oracle Database 12c 和更高版本。如果选择此选项,则当向表中插入行且为列指定的值为 NULL 时,会将默认值插入到列中。
  • 表达式:用于计算列中值的表达式。
  • 注释:关于列的可选说明性注释。使用此字段提供属性的说明。
在表中:
  • PK :如果选择此选项,则该列将成为主键。
  • 身份列:如果选择此选项,则该列将成为身份列。这仅适用于 Oracle Database 12c 和更高版本。有关更多详细信息,请参阅“身份列”选项卡。

“约束条件”标签

显示列的 Not Null 和 Check 约束条件。CHECK 约束条件要求列中的值符合指定的条件。
  • 非空值约束条件:名称:非空值约束条件的名称。
  • Not Null 约束条件:Not Null :如果选择此选项,则列必须包含数据。插入行时,不能为此列指定任何值或显式 Null 值。如果未选中此选项,则列可以包含数据,也可以不包含数据。主键列不能为空。
  • 检查约束条件:名称:检查约束条件定义的名称。
  • 检查约束:约束:列必须满足的条件才能满足检查约束。可以使用任何有效的 CHECK 子句(不含 CHECK 关键字)。例如,要指示名为 RATING 的数字列中的值必须从 1 到 10,可以指定:评级 >=1 且评级 <= 10。
  • 已启用:如果选择此选项,则在列中输入或更新数据时会检查约束条件。
  • 可延迟:如果选择此选项,则可以将约束的有效性检查推迟到事务处理结束。
  • 初始立即:如果选择此选项,则每当您从列中添加、更新或删除数据时,都会检查约束条件。
  • 验证:如果选择此选项,则会检查现有数据以查看其是否符合约束条件。

主键窗格

指定表的主键。

主键是唯一地标识表中各行的一个列或多个列集。如果在“常规”选项卡中为列选中了“主键”复选框,则会在“主键”窗格中自动填充相应的字段。您可以根据需要对属性进行更改。

系统自动为主键创建索引。

  • 名称:要与主键定义关联的约束条件的名称。
  • 已启用:如果选中此选项,将强制实施主键约束条件:即主键列(或列集)中的数据必须唯一且不为空。
  • 索引:主键所引用的索引的名称。表空间:与索引关联的表空间的名称。
  • 可用列:列出可添加到主键定义的列。可以为主键选择多个属性(如果需要)。
  • 选定的列:列出主键定义中包括的列。

    要将列添加到主键定义,请在“可用列”中选择该列并单击“添加”(>) 图标;要从主键定义中删除某个列,请在“选定列”中选择该列,然后单击“删除”(<) 图标。要将所有列从可用列移动到选定列(或反向移动),请使用“全部添加”(>>) 或“全部删除”(<<) 图标。要在主键定义中向上或向下移动列,请在“选定的列”中选择列,然后使用箭头按钮。

唯一键窗格

指定表的一个或多个唯一约束条件。

唯一约束条件指定一个列或一组列,其数据值必须唯一:每个数据值不能为 Null,并且不能与列中的任何其他值相同。

要添加唯一约束条件,请单击“Add(添加)”按钮;要删除唯一约束条件,请选择该约束条件并单击“Remove(删除)”按钮。
  • 名称:唯一约束条件的名称。

  • 启用:如果选择此选项,将强制执行唯一约束条件。
  • Rely :如果选择此选项,则在查询重写期间会考虑 NOVALIDATE 模式下的约束条件。
  • 可延迟:如果选择此选项,则在后续事务处理中,可以使用 SET CONSTRAINT(S) 语句将约束检查推迟到事务处理结束。
  • 初始立即:如果选择此选项,将在每个后续 SQL 语句的末尾检查约束条件。
  • 验证:如果选择该选项,则会检查现有数据以查看它是否符合约束条件。
  • 索引:唯一键所引用的索引的名称。
  • 表空间:与索引关联的表空间的名称。
  • 可用列:列出可添加到唯一约束条件定义的列。
  • 选定的列:列出唯一约束条件定义中包括的列。

    要向唯一约束条件定义添加列,请在“可用列”中选择该列,然后单击“添加”(>) 图标;要从唯一约束条件定义中删除某个列,请在“选定的列”中选择该列,然后单击“删除”(<) 图标。要将所有列从可用列移动到选定列(或反向移动),请使用“全部添加”(>>) 或“全部删除”(<<) 图标。要在唯一约束条件定义中向上或向下移动列,请在“选定的列”中选择该列,然后使用箭头按钮。

索引窗格

列出为表定义的索引。

要添加索引,请单击添加索引 (+);要删除索引,请选择该索引并单击删除索引 (-)。

  • 名称:索引名。
  • 类型:Oracle 索引的类型。非唯一性意味着索引可以包含多个相同的值;唯一性意味着不允许重复的值;位图将与键值关联的行 ID 存储为位图。
  • 表空间:索引的表空间的名称。
  • 表达式:列表达式是从列、常量、SQL 函数和用户定义的函数构建的表达式。指定列表达式后,您就创建了基于函数的索引。
  • 可用列所选列:为索引选择的列。要选择列,请单击“可用列”框中的列,然后单击“添加选定的列”图标将其移至“选定的列”框。

外键窗格

指定表的一个或多个外键。

外键指定一个列(“本地列”),其数据值与另一个表的主键或唯一约束条件中的值相匹配。

  • 名称:外键定义的名称。
  • 启用:如果选中此选项,将强制执行外键。
  • Rely(实)Deferrable(可延迟)Initially Immediate(初始立即)Validate(验证):请参见“唯一键”窗格中这些字段的说明。
  • 引用的约束条件:方案:包含具有此外键所引用的主键或唯一约束的表的方案的名称。
  • 引用的约束条件:表:具有此外键所引用的主键或唯一约束的表的名称。
  • 引用的约束条件:约束条件:此外键所引用的主键或唯一约束条件的名称。
  • 引用的约束条件:删除时:删除引用表中的行,且包含此外键的表中存在具有该值的行时自动执行的操作:NO ACTION(由交叉行显示)关系图不会对这些行执行任何操作;CASCADE(以“X”表示)会删除这些行;SET NULL(以小圆形表示)会将这些行中可以设置为 NULL 值的所有列设置为 NULL。
  • 关联:本地列:列出外部关键字定义中包括的当前选定(本地)表中的列。对于外键定义中的每个引用列,选择编辑后的表中的列名称。
  • 关联:引用列:对于每个本地列,标识另一个(外国)表中的列,该列必须具有与本地列中的值匹配的值。

表约束条件窗格

指定表的一个或多个检查约束条件。

检查约束条件指定在向表中插入行或修改现有行时必须满足的条件。

  • 名称:检查约束条件定义的名称。
  • 检查条件:行必须满足的条件才能满足检查约束条件。可以使用任何有效的 CHECK 子句(不含 CHECK 关键字)。例如,要指示名为 RATING 的数字列中的值必须从 1 到 10,可以指定评级 >=1 且评级 <= 10。
  • 已启用:如果选中此选项,将强制执行检查约束条件。

注释窗格

在此窗格中输入说明性注释。

此项是可选的。

存储窗格

使您能够指定表的存储选项。

创建或编辑表或索引时,可以覆盖默认存储选项。

  • 组织:指定使用(索引)或无索引(堆)或外部表(外部)来存储和组织表。
  • 表空间:表或索引表空间的名称。
  • Logging(日志记录):ON 表示表创建和针对该表的任何后续 INSERT 操作都记录在重做日志文件中。OFF 表示这些操作不会记录在重做日志文件中。
  • 行归档:YES 启用数据库内归档,允许您通过将表中的行标记为不可见来归档表中的行。

外部表属性窗格

指定外部表的选项。

外部表是其元数据存储在数据库中、数据存储在数据库外的只读表。

外部表
  • 访问驱动程序类型:指定外部表的类型。

    • ORACLE_LOADER :从文本数据文件中提取数据。这是默认访问驱动程序,用于将数据从外部表加载到内部表。
    • – ORACLE_DATAPUMP :从二进制转储文件提取数据。此访问驱动程序可以执行装入和卸载。
    • – ORACLE_BIGDATA :从 Oracle Big Data Appliance 提取数据。
    • – ORACLE_HDFS :提取存储在 Hadoop 分布式文件系统 (HDFS) 中的数据。
    • – ORACLE_HIVE :提取存储在 Apache HIVE 中的数据。
  • 默认目录:指定要用于未显式命名目录对象的所有输入和输出文件的默认目录。使用目录对象而不是目录路径指定位置。

  • 访问参数:为外部表的特定访问驱动程序的参数分配值。访问参数是可选的。
    • OPAQUE_FORMAT_SPEC :OPAQUE_FORMAT_SPEC 指定 ORACLE_LOADER、ORACLE_DATAPUMP、ORACLE_HDFS 和 ORACLE_HIVE 访问驱动程序的所有访问参数。有关访问参数的说明,请参阅 Oracle Database Utilities 。opaque_format_spec 中指定的字段名称必须与表定义中的列匹配,否则 Oracle Database 将忽略它们。
    • USING CLOB :使您能够通过子查询派生参数及其值。子查询不能包含任何集合运算符或 ORDER BY 子句。它必须返回一行,其中包含一个数据类型为 CLOB 的项目。
  • 拒绝限制:在返回 Oracle Database 错误并中止查询之前,查询外部数据期间可能发生的转换错误数。
  • 项目列:确定访问驱动程序如何在后续查询中验证外部表的行。
    • 全部:处理所有列值,而不考虑选择哪些列,并且仅验证具有完全有效列条目的行。如果任何列值引发错误(例如数据类型转换错误),则即使该列未在查询的 SELECT 列表中引用,也会拒绝该行。
    • REFERENCED :仅处理查询选择列表中的那些列。ALL 设置可确保结果集一致。REFERENCED 设置可能会返回不同数量的行,具体取决于后续查询中引用的列,但比 ALL 设置快。如果后续查询选择外部表的所有列,则设置的行为相同。
  • 位置:指定外部表的数据文件。使用“添加”(+) 图标添加每个位置规范。
    • ORACLE_LOADER 和 ORACLE_DATAPUMP 文件在格式目录:file 中命名。目录部分是可选的。如果缺少该目录,则缺省目录将用作文件的目录。如果使用的是 ORACLE_LOADER 访问驱动程序,则可以在文件名中使用通配符。星号 (*) 表示多个字符,问号 (?) 表示单个字符。

    • 对于 ORACLE_HDFS,LOCATION 是目录或文件的统一资源标识符 (Uniform Resource Identifier,URI) 列表。没有与 URI 关联的目录对象。
    • 对于 ORACLE_HIVE,不使用 LOCATION。而是读取 Hadoop HCatalog 表来获取有关数据源(可以是文件或其他数据库)位置的信息。

不透明格式规范

指定 ORACLE_LOADER、ORACLE_DATAPUMP、ORACLE_HDFS 和 ORACLE_HIVE 访问驱动程序的所有访问参数。

CLOB 子查询

键入或复制并粘贴查询。

实体化视图窗格

指定实体化视图的选项。

查询:包含视图定义的查询部分的 SQL 代码。键入或复制并粘贴查询。

一般信息
  • 在预构建表中:如果为,则现有表将注册为预初始化的实体化视图。此选项对于在数据仓库环境中注册大型实体化视图特别有用。该表必须具有相同的名称,并且与生成的实体化视图位于相同的方案中,并且该表应反映子查询的实体化。
  • 精简精度Yes 授权精度丢失,因而如果表列或实体化视图列的精度不完全匹配,便会丢失精确度。如果为,则表列或实体化视图列的精度必须与子查询返回的精度完全匹配,否则创建操作将失败。
  • 用于更新:选择以允许更新子查询、主键、对象或行标识实体化视图。与高级复制结合使用时,这些更新将传播到主服务器。
  • 实时 MV :选择可创建实时实体化视图或常规视图。即使实体化视图因数据更改而与其基表不同步,实时实体化视图也会为用户查询提供新数据。优化程序编写的查询将实体化视图中的现有行与日志文件中所记录的更改(实体化视图日志或直接加载程序日志)组合在一起,而不是修改实体化视图。这称为查询式计算。
  • 查询重写:如果为启用,则实体化视图将启用查询重写,这将根据主表写入的用户请求转换为包含一个或多个实体化视图的语义等效请求。
  • 构建:指定何时填充实体化视图。立即表示将立即填充实体化视图。延迟指明实体化视图将由下一个刷新操作填充。如果指定“延迟”,则第一次(延迟)刷新必须始终是完全刷新;在此之前,实体化视图的过时值不可用,因此无法将其用于查询重写。
  • 使用索引:如果为,则会创建默认索引,并使用该索引加速实体化视图的增量(快速)刷新。如果为,则不会创建此默认索引。(例如,您可以选择立即禁止创建索引,并在以后显式创建此类索引。)
  • 索引表空间:指定要在其中创建实体化视图的表空间。如果未选择表空间,则在包含实体化视图的方案默认表空间中创建实体化视图。
  • 高速缓存:如果为 Yes(是),则将针对此表检索到的块置于执行全表格扫描时缓冲区高速缓存中最近最少使用 (LRU) 列表的最近端。此设置适用于小的查找表。如果为 No ,则将块放置在最近最少使用的 LRU 列表末尾。

刷新子句

  • 刷新:选择以启用刷新操作。

  • 刷新类型:要执行的刷新操作的方法:
    • 完全刷新:执行实体化视图的定义查询,即使可以快速刷新也是如此。
    • 快速刷新:使用增量刷新方法,该方法根据主表发生的更改执行刷新。常规 DML 更改的更改存储在与主表关联的实体化视图日志中。直接路径 INSERT 操作的更改存储在直接加载程序日志中。
    • 强制刷新:如果可能,执行快速刷新;否则,执行完全刷新。
  • 操作:要执行的刷新操作的类型:
    • On Demand:在调用 DBMS_MVIEW 刷新过程之一时执行刷新。
    • 提交时:每当数据库提交对实体化视图的主表进行操作的事务处理时,执行快速刷新。这可能会增加完成提交所用的时间,因为数据库在提交过程中执行刷新操作。
    • 指定:根据您在“开始于”和“下一个”字段中指定的内容执行刷新操作。
  • 开始日期:第一次自动刷新操作的开始日期和时间。必须在将来。
  • 下一个日期:下次自动刷新操作的时间。“开始时间”和“下一时间”之间的间隔为后续自动刷新操作建立间隔。如果未指定值,则仅在为“开始时间”指定的时间执行一次刷新操作。
  • 使用:刷新类型,用于确定实体化视图的类型:
    • 主键:创建主键实体化视图,该视图允许重新组织实体化视图主表,而不会影响实体化视图的资格以进行快速刷新。
    • 行 ID:创建行标识实体化视图,如果实体化视图不包括主表的所有主键列,则该视图非常有用。
  • 默认存储:如果为“是”,DEFAULT 指定 Oracle Database 将自动选择要使用的回退段。如果指定 DEFAULT,则无法指定 rollback_segment。修改实体化视图(而不是创建实体化视图)时,DEFAULT 最有用。
  • 存储类型:MASTER 指定要在远程主站点上用于单个实体化视图的远程回退段。LOCAL(本地)指定要用于包含实体化视图的本地刷新组的远程回退段。这是默认设置。
  • 回退段:输入回退段的名称。
  • 使用约束:如果选中此选项,则可以在刷新操作期间使用更多重写替代项,从而提高刷新执行效率。选择 "Enforced" 还是 "Trusted" 会影响此选项的行为。
    • Enforced(强制):仅导致在刷新操作期间使用强制约束。
    • Trusted(可信):允许使用已由数据库管理员声明可信但尚未由数据库验证的维和约束条件信息。如果维和约束条件信息有效,则性能可能会提高。但是,如果此信息无效,则刷新过程可能会损坏实体化视图,即使它返回成功状态也是如此。

DDL 窗格

您可以查看和保存创建或编辑对象时生成的 SQL 语句。如果要进行任何更改,请返回相关窗格并在其中进行更改。

对于新表,单击 CREATE 查看生成的 DDL 语句。

编辑表属性时,单击 UPDATE 查看生成的 ALTER 语句。

对于新表,“UPDATE(更新)”选项卡将不可用。完成后,单击 Apply

输出窗格

显示 DDL 命令的结果。

如果有任何错误,请转到相应的窗格,修复错误,然后再次运行命令。您可以保存到文本文件或清除输出。