2014-12-01 7 views
2

필자는 DB2에서 설명적인 테이블 이름을 만들기 시작했으며 DB2는 각 테이블에 대해 짧은 이름과 긴 이름을 가지고 있음을 알게되었습니다.DB2 SQL 쇼 길고 짧은 테이블 이름?

EmployeePlan 내가 SQL 문에서 두 이름을 표시 할 수 있도록하고 싶습니다 Emplo00001

의 짧은 이름이 있습니다. 여기 내 기존 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 

답변

3

하나 개 이상의 방법이있을 수 있습니다,하지만 당신은이 쿼리를 실행하는 경우 :

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

당신은 그 SYSTEM_TABLE_NAME이 열 중 하나입니다 볼 수 있습니다 여기 내 마지막 질문입니다. 따라서 스키마와 "긴"테이블 이름을 사용하여 qys2.systables에 가입 할 수 있습니다.

+0

우수 너무 짧은 이름의 필터를 추가 할 수 있습니다. 그것은 내가 찾고 있었던 바로 그 것이다. 여기 내 마지막 쿼리 ... 짧은 이름, a.table_name, a.system_column_name, a.column_text, a.type_name 같은 SELECT b.system_table_name하는 INNER가 B의를 qsys2.systables 가입 sysibm.SQLColumns FROM a.column_size 입니다 a.table_name = b.table_name AND a.table_schem = b.table_schema WHERE UPPER IN (a.table_schem) ('LAWMOD9T', 'LIBDDS') AND ('EMPLOYEEPLAN') IN ORDER UPPER (a.table_name) a.table_schem, a.table_Name, a.ordinal_position에 의해 –

0

너무

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