[sql] Oracle의 테이블에서 열 이름을 얻는 방법은 무엇입니까?

열 이름 을 얻으려면 데이터베이스를 쿼리해야 하며 테이블의 데이터와 혼동하지 마십시오. 예를 들어, 내가라는 테이블이있는 경우 EVENT_LOG포함 된 eventID, eventType, eventDesc, 및eventTime , 나는 쿼리 및 아무것도에서 해당 필드 이름을 검색 할 것입니다.

나는 이것을하는 방법을 발견했다 :

그러나 나는 알아야합니다 : 오라클 에서 어떻게 이것을 할 수 있습니까?



답변

테이블 열 메타 데이터에 대해 USER_TAB_COLUMNS 테이블을 쿼리 할 수 ​​있습니다.

SELECT table_name, column_name, data_type, data_length
FROM USER_TAB_COLUMNS
WHERE table_name = 'MYTABLE'


답변

SQL Server에서 …

SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE type = 'V' AND [Name] = 'Your table name')

뷰의 경우 유형 = ‘V’테이블의 경우 유형 = ‘U’


답변

당신은 이것을 할 수 있습니다 :

describe EVENT_LOG

또는

desc EVENT_LOG

참고 : 테이블 이름을 알고 특히 Oracle에 대해 알고있는 경우에만 적용 가능합니다.


답변

SQL Server 2008의 경우 열 정보를 얻기 위해 information_schema.columns를 사용할 수 있습니다.

SELECT *
FROM   information_schema.columns
WHERE  table_name = 'Table_Name'
ORDER  BY ordinal_position  


답변

SQLite의 경우 다음과 같은 것을 사용할 수 있다고 생각합니다.

PRAGMA table_info(table-name);

sqlite.org의 설명 :

이 pragma는 명명 된 테이블의 각 열에 대해 하나의 행을 반환합니다. 결과 집합의 열에는 열 이름, 데이터 형식, 열이 NULL 일 수 있는지 여부 및 열의 기본값이 포함됩니다. 기본 키의 일부가 아닌 열의 경우 결과 집합의 “pk”열이 0이고 기본 키의 일부인 열의 기본 키 열의 인덱스입니다.

참조 : Sqlite.org Pragma 테이블 정보


답변

해당 정보는 ALL_TAB_COLUMNS시스템 테이블에 저장됩니다 .

SQL> select column_name from all_tab_columns where table_name = 'DUAL';

DUMMY

또는 DESCRIBESQL * PLUS를 사용하는 경우 테이블을 사용할 수 있습니다.

SQL> desc dual
Name                               Null?    Type
----------------------------------------------------- -------- ---------------------- -------------
DUMMY                               VARCHAR2(1)


답변

다른 답변은 질문에 충분히 대답하지만 추가 정보를 공유 할 것이라고 생각했습니다. 다른 사람들은 테이블 정보를 얻기 위해 “DESCRIBE 테이블”구문을 설명합니다. DESCRIBE를 사용하지 않고 동일한 형식으로 정보를 얻으려면 다음을 수행하십시오.

SELECT column_name as COLUMN_NAME, nullable || '       ' as BE_NULL,
  SUBSTR(data_type || '(' || data_length || ')', 0, 10) as TYPE
 FROM all_tab_columns WHERE table_name = 'TABLENAME';

아마 중요하지 않지만, 나는 그것을 일찍 작성했고 그것은 맞는 것 같습니다.