2012-07-27 3 views
0

Java 코드를 사용하여 DB2 테이블을 사용하고 ResultSetMetaData를 사용하여 테이블의 메타 데이터를 가져 오는 중입니다. 테이블이 열을 생성했는지 여부를 알기 위해 어쨌든 존재합니까? 그렇다면 거기에 사용 된 수식을 찾을 수있는 방법이 있습니다.DB2 : Java에서 생성 된 열 찾기

Java 코드를 통해 가능한 한 ResultSetMetaData를 사용하거나 다른 접근법을 사용하는 것이 좋습니다.

Mehul

답변

0

를 사용하여 시스템 카탈로그. 결과 집합이 비어있는 경우 자바

SELECT colname 
     FROM SysCat.Columns 
     WHERE tabname = ? 
     AND tabschema = ? 
     AND identity = 'Y' 

에서의 ResultSet으로 다음을 열고, 테이블에는 생성 된 컬럼이 없습니다. 그렇지 않으면, 위의 조회 결과에서 어떤 컬럼 이름이 GENERATED인지 판별 할 수 있습니다.

IDENTITY 열에 대한 다음 값을 '미리 생성하는'수식을 찾는 경우 적어도 데이터베이스가 뜨겁지 않을 때는 그렇게 할 방법이 없습니다.

+0

답장을 보내 주셔서 감사합니다. 정말 도움이되었습니다. 수식에 관해서는 데이터베이스가 뜨겁지 만 논리적으로 수식이 데이터베이스에 미리 생성되어 다른 메타 데이터처럼 그 수식에 액세스 할 수 있어야한다는 식으로 액세스 할 수 없다고 했지요. 그것은 내 가정이다. 내가 틀렸다면 나를 바로 잡아라. – Mehul

+0

데이터베이스가 뜨거울 때 생성 된 열에 할당 될 값을 얻을 수 없다는 말입니다. 위의 SQL을 사용하여 어떤 열이 IDENTITY 열인지 확실히 확인할 수 있습니다. 당신이 얻을 수있는 가장 가까운 것은 SysCat.Sequences.start이지만, 데이터베이스가 뜨거울 때 그 숫자는 IDENTITY 컬럼에 할당 된 다음 숫자보다 더 높을 수 있습니다. 이것에 대한 증거는 한계를 내기에는 너무 길다. user980717

+0

고마워. 나는 그것을 시도 할 것이다. – Mehul