[SQL] 어떻게 오라클의 테이블에서 열 이름을 얻을 수 있나요?
SQL어떻게 오라클의 테이블에서 열 이름을 얻을 수 있나요?
나는 테이블의 데이터와 혼동하지, 열 이름을 얻기 위해 데이터베이스를 조회 할 필요가있다. 내가 이벤트 ID를 포함 EVENT_LOG라는 테이블이있는 경우 예를 들어, 이벤트 유형, eventDesc 및 EVENTTIME 후 나는 쿼리 및 아무것도에서 해당 필드 이름을 검색 할 것입니다.
나는이 작업을 수행하는 방법을 발견 :
이 오라클에서 수행 할 수있는 방법 :하지만 알 필요가?
해결법
-
==============================
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.에서 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.이 작업을 수행 할 수 있습니다 :
이 작업을 수행 할 수 있습니다 :
describe EVENT_LOG
또는
desc EVENT_LOG
참고 : 테이블 이름을 알고있는 경우에만 적용 특히 Oracle 용.
-
==============================
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.SQLite는 들어 난 당신이 다음과 같은 것을 사용 수 있다고 생각합니다 :
SQLite는 들어 난 당신이 다음과 같은 것을 사용 수 있다고 생각합니다 :
PRAGMA table_info(table-name);
sqlite.org에서 설명 :
이 pragma는 지정된 테이블의 각 열에 대해 하나 개의 행을 반환합니다. 결과 집합의 열은 열 이름, 데이터 유형인지 NULL이 될 수없는 컬럼과 컬럼에 대한 기본 값을 포함한다. 결과 집합에서 "PK"열의 기본 키의 일부가 아닌 열의 제로이고, 기본 키의 일부인 열의 기본 키의 컬럼 인덱스이다.
참조 : Sqlite.org에서 Pragma 표 정보를
-
==============================
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.다른 답변은 충분히 질문에 대답,하지만 난 몇 가지 추가 정보를 공유하는 것이라고 생각. 다른 사람들은 테이블 정보를 얻기 위해 "테이블을 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.Oracle의 경우
Oracle의 경우
SELECT column_name FROM user_tab_cols WHERE table_name=UPPER('tableName');
-
==============================
9.
select column_name,* from information_schema.columns where table_name = 'YourTableName' order by ordinal_position
-
==============================
10.
describe YOUR_TABLE;
귀하의 경우 :
describe EVENT_LOG;
-
==============================
11.MySQL은, 사용을 위해
MySQL은, 사용을 위해
SELECT column_name FROM information_schema.columns WHERE table_schema = 'Schema' AND table_name = 'Table_Name'
-
==============================
12.SQL Server의 경우 :
SQL Server의 경우 :
SELECT [name] AS [Column Name] FROM syscolumns WHERE id = object_id('TABLE_NAME')
-
==============================
13.심지어 이것은 또한 우리가 그것을 사용할 수있는 방법 중 하나입니다
심지어 이것은 또한 우리가 그것을 사용할 수있는 방법 중 하나입니다
select * from product where 1 != 1
-
==============================
14.
SELECT COLUMN_NAME 'all_columns' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='user';
-
==============================
15.또한이 시도 할 수 있지만, 당신이 필요로하는 것보다 더 많은 정보가 될 수 있습니다
또한이 시도 할 수 있지만, 당신이 필요로하는 것보다 더 많은 정보가 될 수 있습니다
sp_columns TABLE_NAME
-
==============================
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.오라클에서 열을 설명하는 두 개의보기가있다 :
오라클에서 열을 설명하는 두 개의보기가있다 :
-
==============================
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.
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.이 쿼리를 실행할 수 있습니다
이 쿼리를 실행할 수 있습니다
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.다만 오라클, 테이블에서의 첫 번째 행을 선택 <표 이름>에서 선택 * 어디 ROWNUM = 1;
다만 오라클, 테이블에서의 첫 번째 행을 선택 <표 이름>에서 선택 * 어디 ROWNUM = 1;
-
==============================
22.나는 SQL 자신의 '맛'에 대한 답을 추가 할 것입니다 수 있도록, 테라 데이타에 열 이름에 대한 액세스 권한을 찾고이 질문에 건너 온 :
나는 SQL 자신의 '맛'에 대한 답을 추가 할 것입니다 수 있도록, 테라 데이타에 열 이름에 대한 액세스 권한을 찾고이 질문에 건너 온 :
SELECT ColumnName FROM DBC.Columns WHERE DatabaseName='DBASE_NAME' AND TableName='TABLE_NAME';
'정보'는 DBC의 디베이스에 저장됩니다.
데이터 유형을 얻는 것은 조금 더 복잡 : 테라 데이타 시스템 테이블을 사용하여 열 유형을 가져옵니다
-
==============================
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.나는 이런 식으로했다
나는 이런 식으로했다
SELECT TOP 0 * FROM Posts
심지어 http://data.stackexchange.com 누구의 서비스 테이블 내가 인식하지 오전에 작품!
-
==============================
25.
SELECT COLUMN_NAME FROM YourDatabase.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName'
from https://stackoverflow.com/questions/452464/how-can-i-get-column-names-from-a-table-in-oracle by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버 2005/2008에서 요일을 가져 오기 (0) | 2020.03.28 |
---|---|
[SQL] SQL Server의 INSERT INTO SELECT 쿼리 않도록 중복 (0) | 2020.03.28 |
[SQL] 사용자 당 가장 최근 날짜를 선택 행 (0) | 2020.03.28 |
[SQL] 일시적으로 제약을 해제 (MS SQL) (0) | 2020.03.28 |
[SQL] MySQL은, 더 나은 NULL 또는 빈 문자열을 삽입하는? (0) | 2020.03.28 |