2012-12-09 2 views
3

주어진 테이블의 열이 Informix 데이터베이스에서 Null 가능 여부를 프로그램 방식으로 결정하는 방법을 알아 내려고합니다. 주어진 데이터에 대해 열 데이터를 가져 오는 방법을 알아 냈지만 이러한 결과가 내 용도로 유용하지는 않은 것 같습니다. 즉, 열이 null을 허용하는지 여부를 나타내는 속성이없는 것 같습니다.Informix의 syscolumns에서 "Null 허용 여부"속성을 검색하는 방법은 무엇입니까?

다른 sys_ _ 테이블이나 그 종류의 테이블에 가입해야합니까?

쿼리 내가 현재 사용하고 있습니다

SELECT * 
FROM "informix".syscolumns 
WHERE tabid = (SELECT tabid FROM "informix".systables WHERE tabname = 'myTable'); 

이 COLNAME, TABID, COLNO, coltype, collength, colmin, colmax, extended_id, seclabelid 및 colattr있는 테이블을 반환합니다. 아마도 nullable 속성은 coltype에있는 것입니다 ...?

답변

4

견적 from the manual : 이전 페이지에

coltype 코드는 컬럼의 다음과 같은 기능을 보여주는 비트 맵에 의해 증가 될 수있다. 그런 다음 페이지

 
Bit Value Significance When Bit Is Set 
0x0100  NULL values are not allowed

는 : 열이 NULL 값을 허용하지 않는 경우

마찬가지로 coltype 값은 256만큼 증가된다. 이러한 열의 데이터 형식을 확인하려면 값에서 256을 빼고 가능한 coltype 값을 기반으로 나머지를 계산하십시오. 예를 들어, coltype 값이 262 인 경우 256을 빼면 6의 나머지가 남으며 열이 SERIAL 데이터 유형임을 나타냅니다.

+0

감사합니다. 나는 Informix를 처음 사용하기 때문에 RTFM을 가져야한다고 생각합니다. :) 귀하의 답변에 감사드립니다. – asteri

관련 문제