【问题标题】:DB2 SQL Show Long and Short Table Names?DB2 SQL 显示长表名和短表名?
【发布时间】:2014-12-01 21:22:13
【问题描述】:

我已经开始在 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

谢谢你,Darius 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

【问题讨论】:

    标签: sql naming db2-400


    【解决方案1】:

    可能有不止一种方法,但如果你运行这个查询:

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

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

    【讨论】:

    • 优秀。这正是我想要的。这是我的最终查询... 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】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多