TABLE_SCHEMA 标量函数
TABLE_SCHEMA 函数返回解析任何别名链后找到的对象的模式名称。
该模式是 SYSIBM。
指定的 object-name (和 object-schema) 用作解析的起始点。 如果起始点未引用别名,那么将返回起始点的模式名称。 生成的模式名称可以是表,视图或未定义的对象。 在 Unicode 数据库中,如果提供的参数是图形字符串,那么在执行该函数之前会先将其转换为字符串。
- 对象名
- 表示要解析的非限定名 (通常是现有别名) 的字符表达式。 object-name 的数据类型必须为 CHAR 或 VARCHAR ,长度必须大于 0 且小于 129 字节。
- 对象模式
- 表示用于在解析之前限定所提供的 object-name 值的模式的字符表达式。 object-schema 的数据类型必须为 CHAR 或 VARCHAR ,长度必须大于 0 且小于 129 字节。
如果未提供 object-schema ,那么缺省模式将用于限定符。
函数结果的数据类型为 VARCHAR (128 OCTETS)。 如果 object-name 可以为空,那么结果可以为空; 如果 object-name 为空,那么结果为空值。 如果 object-schema 是空值,那么将使用缺省模式名称。 结果是表示模式名称的字符串。 结果模式可以表示下列其中一个对象的模式名称:
- table
- object-name 的值是表名 (返回 object-schema 的输入或缺省值) 或解析为返回了模式名称的表的别名。
- view
- object-name 的值是视图名称 (返回 object-schema 的输入或缺省值) 或解析为返回了模式名称的视图的别名。
- undefined object
- object-name 的值是未定义的对象 (返回 object-schema 的输入或缺省值) 或解析为返回了模式名称的未定义对象的别名。
因此,如果对此函数提供了非空 object-name 值,那么将始终返回一个值,即使具有结果模式名称的对象名不存在也是如此。 例如, TABLE_SCHEMA('DEPT',
'PEOPLE') 返回 "PEOPLE" 如果找不到商品。
注意
- 要通过避免在使用 TABLE_SCHEMA 和 TABLE_NAME 标量函数时协调程序分区与目录分区之间发生不必要的通信来提高分区数据库配置中的性能,可以改为使用 BASE_TABLE 表函数。
示例
- 示例 1: PBIRD 尝试使用在表 HEDGES.T1上定义的别名 PBIRD.A1 从 SYSCAT.TABLES 中选择给定表的统计信息。
SELECT NPAGES, CARD FROM SYSCAT.TABLES WHERE TABNAME = TABLE_NAME ('A1') AND TABSCHEMA = TABLE_SCHEMA ('A1')HEDGES.T1 。
- 示例 2: 使用 HEDGES.X1从 SYSCAT.TABLES 中选择名为 HEDGES.X1 的对象的统计信息。 请使用 TABLE_NAME 和 TABLE_SCHEMA ,因为不知道是否为 HEDGES.X1 是别名或表。
SELECT NPAGES, CARD FROM SYSCAT.TABLES WHERE TABNAME = TABLE_NAME ('X1','HEDGES') AND TABSCHEMA = TABLE_SCHEMA ('X1','HEDGES')假定 HEDGES.X1 是表, HEDGES.X1 。
- 示例 3: 使用在 HEDGES.T2 上定义的别名 PBIRD.A2 (其中 HEDGES.T2 不存在) 从 SYSCAT.TABLES 中选择给定表的统计信息。
SELECT NPAGES, CARD FROM SYSCAT.TABLES WHERE TABNAME = TABLE_NAME ('A2','PBIRD') AND TABSCHEMA = TABLE_SCHEMA ('A2',PBIRD')该语句返回 0 记录,因为在 SYSCAT.TABLES ,其中 TABNAME = 'T2' 和 TABSCHEMA = 'HEDGES '。
- 示例 4: 选择 SYSCAT.TABLES 以及任何别名条目的最终引用名称。
SELECT TABSCHEMA AS SCHEMA, TABNAME AS NAME, TABLE_SCHEMA (BASE_TABNAME, BASE_TABSCHEMA) AS REAL_SCHEMA, TABLE_NAME (BASE_TABNAME, BASE_TABSCHEMA) AS REAL_NAME FROM SYSCAT.TABLES该语句返回目录中每个对象的限定名以及任何别名条目的最终引用名 (在解析别名后)。 对于所有非别名条目, BASE_TABNAME 和 BASE_TABSCHEMA 均为 NULL ,因此 REAL_SCHEMA 和 REAL_NAME 列将包含空值。
