복붙노트

[SQL] 어떻게 오라클의 테이블에서 열 이름을 얻을 수 있나요?

SQL

어떻게 오라클의 테이블에서 열 이름을 얻을 수 있나요?

나는 테이블의 데이터와 혼동하지, 열 이름을 얻기 위해 데이터베이스를 조회 할 필요가있다. 내가 이벤트 ID를 포함 EVENT_LOG라는 테이블이있는 경우 예를 들어, 이벤트 유형, eventDesc 및 EVENTTIME 후 나는 쿼리 및 아무것도에서 해당 필드 이름을 검색 할 것입니다.

나는이 작업을 수행하는 방법을 발견 :

이 오라클에서 수행 할 수있는 방법 :하지만 알 필요가?

해결법

  1. ==============================

    1.당신은 테이블 열 메타 데이터에 대한 USER_TAB_COLUMNS 테이블을 조회 할 수 있습니다.

    당신은 테이블 열 메타 데이터에 대한 USER_TAB_COLUMNS 테이블을 조회 할 수 있습니다.

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

    2.에서 SQL 서버 ...

    에서 SQL 서버 ...

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

    뷰 = 'V'를 입력 테이블 = 'U'를 입력

  3. ==============================

    3.이 작업을 수행 할 수 있습니다 :

    이 작업을 수행 할 수 있습니다 :

    describe EVENT_LOG
    

    또는

    desc EVENT_LOG
    

    참고 : 테이블 이름을 알고있는 경우에만 적용 특히 Oracle 용.

  4. ==============================

    4.SQL 서버 2008, 우리는 열 정보를 얻기 위해 INFORMATION_SCHEMA.COLUMNS을 사용할 수 있습니다

    SQL 서버 2008, 우리는 열 정보를 얻기 위해 INFORMATION_SCHEMA.COLUMNS을 사용할 수 있습니다

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

    5.SQLite는 들어 난 당신이 다음과 같은 것을 사용 수 있다고 생각합니다 :

    SQLite는 들어 난 당신이 다음과 같은 것을 사용 수 있다고 생각합니다 :

    PRAGMA table_info(table-name);
    

    sqlite.org에서 설명 :

    이 pragma는 지정된 테이블의 각 열에 대해 하나 개의 행을 반환합니다. 결과 집합의 열은 열 이름, 데이터 유형인지 NULL이 될 수없는 컬럼과 컬럼에 대한 기본 값을 포함한다. 결과 집합에서 "PK"열의 기본 키의 일부가 아닌 열의 제로이고, 기본 키의 일부인 열의 기본 키의 컬럼 인덱스이다.

    참조 : Sqlite.org에서 Pragma 표 정보를

  6. ==============================

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

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

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

    당신은 SQL * PLUS를 사용하는 경우 또는 당신은 테이블을 DESCRIBE 수 :

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

    7.다른 답변은 충분히 질문에 대답,하지만 난 몇 가지 추가 정보를 공유하는 것이라고 생각. 다른 사람들은 테이블 정보를 얻기 위해 "테이블을 DESCRIBE"구문에 대해 설명합니다. 당신은하지만, DESCRIBE 사용하지 않고 같은 형식의 정보를 얻고 싶다면, 당신은 할 수 있습니다 :

    다른 답변은 충분히 질문에 대답,하지만 난 몇 가지 추가 정보를 공유하는 것이라고 생각. 다른 사람들은 테이블 정보를 얻기 위해 "테이블을 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';
    

    아마별로 중요하지 않습니다,하지만 난 이전에 그것을 쓴이 맞는 것 같다.

  8. ==============================

    8.Oracle의 경우

    Oracle의 경우

    SELECT column_name FROM user_tab_cols WHERE table_name=UPPER('tableName');
    
  9. ==============================

    9.

    select column_name,* from information_schema.columns
     where table_name = 'YourTableName'
    order by ordinal_position
    
  10. ==============================

    10.

    describe YOUR_TABLE;
    

    귀하의 경우 :

    describe EVENT_LOG;
    
  11. ==============================

    11.MySQL은, 사용을 위해

    MySQL은, 사용을 위해

    SELECT column_name 
    FROM information_schema.columns 
    WHERE 
    table_schema = 'Schema' AND table_name = 'Table_Name'
    
  12. ==============================

    12.SQL Server의 경우 :

    SQL Server의 경우 :

    SELECT [name] AS [Column Name]
    FROM syscolumns
    WHERE id = object_id('TABLE_NAME')
    
  13. ==============================

    13.심지어 이것은 또한 우리가 그것을 사용할 수있는 방법 중 하나입니다

    심지어 이것은 또한 우리가 그것을 사용할 수있는 방법 중 하나입니다

    select * from product where 1 != 1
    
  14. ==============================

    14.

    SELECT COLUMN_NAME 'all_columns' 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_NAME='user';
    
  15. ==============================

    15.또한이 시도 할 수 있지만, 당신이 필요로하는 것보다 더 많은 정보가 될 수 있습니다

    또한이 시도 할 수 있지만, 당신이 필요로하는 것보다 더 많은 정보가 될 수 있습니다

    sp_columns TABLE_NAME
    
  16. ==============================

    16.MySQL의

    MySQL의

    SHOW COLUMNS FROM a_table_named_users WHERE Field REGEXP 'user_id|user_name|user_pass'
    

    이 같은 결과에 뭔가를 반환합니다 :

    Field     |  Type        |   Null   |   Key   |   Default   |   Extra  
    user_id      int(8)          NO         PRI       NULL          auto_increment
    user_name    varchar(64)     NO         MUL       NULL
    user_pass    varchar(64)     NO                   NULL
    

    그런 다음 값을 꺼내 당신은 간단하게 할 수

    fetch row[0]
    

    정규 표현식이 필요하기 때문에 이것은 동적 입력을 전달하는 좋은이다 '|' 다수의 입력에뿐만 아니라 데이터에 분리 손쉽게 저장하는데 / 클래스 / 기능 유지에 전달하는 방식이다.

    그것을 밖으로 보낼 때 보안을 위해뿐만 아니라 더미 데이터에 던지는 시도하고 오류를 수신 할 때 반환 된 것을 비교한다.

  17. ==============================

    17.오라클에서 열을 설명하는 두 개의보기가있다 :

    오라클에서 열을 설명하는 두 개의보기가있다 :

  18. ==============================

    18.답은 여기에 있습니다 : http://php.net/manual/en/function.mysql-list-fields.php 나는 귀하의 경우 다음 코드를 사용하십시오 :

    답은 여기에 있습니다 : http://php.net/manual/en/function.mysql-list-fields.php 나는 귀하의 경우 다음 코드를 사용하십시오 :

    $result = mysql_query("SHOW COLUMNS FROM sometable");
    if (!$result) {
        echo 'Could not run query: ' . mysql_error();
        exit;
    }
    $fields = array();
    if (mysql_num_rows($result) > 0) {
        while ($row = mysql_fetch_assoc($result)) {
            $fields[] = $row['Field'];
        }
    }
    
  19. ==============================

    19.

    SELECT A.COLUMN_NAME, A.* FROM all_tab_columns a 
    WHERE table_name = 'Your Table Name'
    AND A.COLUMN_NAME = 'COLUMN NAME' AND a.owner = 'Schema'
    
  20. ==============================

    20.이 쿼리를 실행할 수 있습니다

    이 쿼리를 실행할 수 있습니다

    SELECT t.name AS table_name,
    SCHEMA_NAME(schema_id) AS schema_name,
    c.name AS column_name
    FROM sys.tables AS t
    INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
    WHERE c.name LIKE '%%' --if you want to find specific column write here 
    ORDER BY schema_name, table_name;
    
  21. ==============================

    21.다만 오라클, 테이블에서의 첫 번째 행을 선택 <표 이름>에서 선택 * 어디 ROWNUM = 1;

    다만 오라클, 테이블에서의 첫 번째 행을 선택 <표 이름>에서 선택 * 어디 ROWNUM = 1;

  22. ==============================

    22.나는 SQL 자신의 '맛'에 대한 답을 추가 할 것입니다 수 있도록, 테라 데이타에 열 이름에 대한 액세스 권한을 찾고이 질문에 건너 온 :

    나는 SQL 자신의 '맛'에 대한 답을 추가 할 것입니다 수 있도록, 테라 데이타에 열 이름에 대한 액세스 권한을 찾고이 질문에 건너 온 :

    SELECT ColumnName
    FROM DBC.Columns
    WHERE DatabaseName='DBASE_NAME'
    AND TableName='TABLE_NAME';
    

    '정보'는 DBC의 디베이스에 저장됩니다.

    데이터 유형을 얻는 것은 조금 더 복잡 : 테라 데이타 시스템 테이블을 사용하여 열 유형을 가져옵니다

  23. ==============================

    23.이 시도

    이 시도

    select * from sys.all_columns c join sys.objects o on c.object_id=o.object_id where o.name = 'TABLENAME' and c.name like '%COLUMN NAME%'
    
  24. ==============================

    24.나는 이런 식으로했다

    나는 이런 식으로했다

    SELECT 
        TOP 0
        *
    FROM
        Posts
    

    심지어 http://data.stackexchange.com 누구의 서비스 테이블 내가 인식하지 오전에 작품!

  25. ==============================

    25.

    SELECT COLUMN_NAME 
    FROM YourDatabase.INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_NAME = 'YourTableName'
    
  26. from https://stackoverflow.com/questions/452464/how-can-i-get-column-names-from-a-table-in-oracle by cc-by-sa and MIT license