2011-09-20 3 views
3

다른 열을 만들 때 기존 테이블의 열 유형을 사용할 수 있는지 궁금합니다. varchar와 같은 데이터 유형을 사용하는 것과 마찬가지로 다른 테이블의 열과 동일한 유형의 열을 사용하고 싶습니다.테이블을 만들 때 기존 테이블의 열 유형을 사용할 수 있습니까?

내가 같은 것이 첫 번째 테이블을 만들 상상하고 (ID 번호 (5), 이름 VARCHAR (25))

다음

이 표 SECOND (ID 번호를 CREATE (6), 값 FIRST.NAME %의 TYPE)

와 VALUE 컬럼의 유형은 내가 오라클을 사용하고 있지만 VARCHAR은 (

25)

내가, 일반적인 SQL 질문으로 이것을 볼 것입니다. 이 % 유형 구문은 PLSQL 일이 생각하는 경우에만 당신은 SQL 서버에서이 작업을 수행 할 수

답변

2

당신은 다음과 같은 작업을 수행 할 수

SELECT TOP 0 CAST(0 as int) as 'id', Field 
INTO NewTable 
FROM OtherTable 
+0

이렇게하면 SECOND 테이블이 FIRST 테이블의 복사본으로 생성됩니다 (물론 데이터가없는 경우). 내가 원하는 것은 SECOND 테이블에서 선택한 하나의 열에 대해 FIRST 테이블 – Tchypp

+0

@Tchypp에서 하나의 열 유형을 사용하는 것이고, 테이블 작성 스크립트를 동적으로 작성하고 (user_tab_columns에서 열 정의를 검색하여) 실행할 수 있습니다. 하지만 % TYPE sntax를 사용하는 PLSQL에서 사용할 수있는 것과 같은 더 쉬운 솔루션을 찾고 있다고 생각합니다. –

+0

좋습니다. PLSQL로 축소해도 % TYPE 트릭이 작동하지 않습니다. 지금 PLSQL 솔루션이 나에게 적합 할 것입니다. – Tchypp

-1

SELECT INTO를 사용하여

CREATE TABLE SECOND AS (
    SELECT ID, NAME AS VALUE 
    FROM FIRST 
    WHERE 1 = 2 
); 

:

+0

... 내가 SQL Server **의 첫 번째 줄 **에 언급 한 이유입니다. – JNK

1

표준 SQL에서는 CREATE DOMAIN 문을 작성합니다.

CREATE DOMAIN my_name_type VARCHAR(25); 

하지만 오라클이 CREATE DOMAIN 지원 생각하지 않는다, 그래서 나는 당신이 대신 개체를 만들 필요가 있다고 생각합니다. 어느 경우

create type my_name_type as object 
(my_name_col varchar2(25)); 

, 당신은 테이블을 생성에 직접 사용하십시오.

INSERT 문의 구문이 조금 이상합니다. 그 문서를 확인하십시오.

관련 문제