2011-02-17 4 views
0

Sybase와 Oracle 데이터베이스 모두에서 호환되어야하는 SQL 쿼리를 작성하려고합니다. 쿼리는 다음과 같습니다.오라클과 Sybase의 호환성 테이블 생성 new_table

SELECT * 
    INTO new_table 
    FROM other_table 

이 쿼리는 Sybase 데이터베이스에서는 훌륭하게 작동하지만 Oracle에서는 훌륭하게 작동합니다.

CREATE table new_table AS 
SELECT * 
    FROM other_table 

동일하고는 사이베이스와 오라클 데이터베이스에서 실행할 수 있습니다 할 것 세 번째 쿼리를 작성하는 방법이 있나요 : 나는 오라클에 대해 동등한 발견?

답변

3

오라클은 INTO을 지원하지만 Sybase/SQL Server처럼 사용하지 않습니다. 마찬가지로 Sybase는 CREATE TABLE 구문의 Oracle 확장을 지원하지 않습니다. 오라클은 세미콜론으로 구분되는 각 문을 필요로하기 때문에, 구문은 다른 그렇다하더라도

CREATE TABLE new_table (
    ...columns... 
) 

INSERT INTO new_table 
SELECT * 
    FROM OLD_TABLE 

:

& 데이터 가져 오기 시스템 사이에 테이블을 생성하는 가장 신뢰할 수있는 수단

는 두 문장을 사용하는 것입니다 TSQL은 그렇지 않습니다.

테이블 만들기 & 다른 테이블에서 모든 데이터를 가져 오는 것은 나에게 빨간색 플래그입니다. 프로덕션 시스템의 저장 프로 시저에서 수행 할 작업이 아닙니다. TSQL과 PLSQL은 매우 다르므로 DML 변경을위한 별도의 스크립트가 필요합니다.

0

원하는 작업을 수행 할 수있는 쿼리가 없습니다. 이러한 환경은 매우 다릅니다.

+0

좋아. 그리고 쿼리 결과에 따라 새 테이블을 만들어야한다는 것을 알고 있다면이 두 환경에서 사용할 수있는 쿼리가 있다고 생각합니까? – MartinMoizard

+0

@MartinMoizard 네, SQL 서버 데이터베이스에 DUAL 테이블을 추가하는 것으로 끝납니다. 일부 바보가 시스템 의사 테이블을 숨기는 Oracle로 다시 복사합니다. 마지막으로 이중 행에 둘 이상의 행이 있습니다. –

-1

가능합니다.

SELECT * INTO new_table FROM existing_table; 

감사