DB2 SQL显示长表和短表名称?

时间:2014-12-01 21:22:13

标签: sql naming db2-400

我已经开始在DB2中创建描述性表名,并且发现DB2的每个表都有一个简短的名称和一个长名称。

EmployeePlan的简称为Emplo00001

我希望能够从sql语句中显示这两个名称。 这是我现有的SQL - 我可以加入一个表来获取短名称吗?

select * --table_name, system_column_name, column_text, Type_Name, column_Size, *
from sysibm.SQLColumns
where table_schem IN ('LAWMOD9T', 'LIBDDS')
and upper(table_name) IN ('EMPLOYEEPLAN')
ORDER BY system_column_name

谢谢你,大流士X如此迅速地回答我的问题。这是我的最后一个问题:

SELECT b.system_table_name as ShortName,
       a.table_name, a.system_column_name, a.column_text, 
       a.type_name, a.column_size
FROM sysibm.SQLColumns a
INNER JOIN qsys2.systables b
ON a.table_name = b.table_name
AND a.table_schem = b.table_schema
WHERE UPPER(a.table_schem) IN ('LAWMOD9T', 'LIBDDS')
AND UPPER(a.table_name) IN ('EMPLOYEEPLAN')
ORDER BY a.table_schem, a.table_Name, a.ordinal_position

2 个答案:

答案 0 :(得分:3)

可能有多种方式,但如果您运行此查询:

select *
from qsys2.systables
where table_schema IN ('LAWMOD9T', 'LIBDDS')

您会看到SYSTEM_TABLE_NAME是其中一列。因此,您可以使用架构和" long"加入qys2.systables。表名。

答案 1 :(得分:0)

您也可以添加短名称过滤器

select 
TABLE_NAME 
from QSYS2.SYSTABLES 
where table_schema = 'SchemaName' AND SYSTEM_TABLE_NAME = 'SystemName';