SnowConvert AI - Oracle - SQL 문

이 문서에서는 SQL 구문의 모든 유사점, 차이점과 SnowConvert AI가 해당 SQL 구문을 기능적인 Snowflake SQL 구문으로 변환하는 방법에 대해 자세히 설명합니다.

Alter Table

이 섹션에서는 ALTER TABLE과 관련된 변환을 보여줍니다.

참고

출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.

1. Description

ALTER TABLE 문을 사용하여 파티션되지 않은 테이블, 파티션된 테이블, 테이블 파티션 또는 테이블 하위 파티션의 정의를 변경할 수 있습니다. 오브젝트 테이블 또는 오브젝트 열이 있는 관계형 테이블의 경우 ALTER TABLE 을 사용하여 유형이 변경된 후 참조된 유형의 최신 정의로 테이블을 변환합니다 (Oracle 설명서).

Oracle 구문

ALTER TABLE [ schema. ] table
  [ alter_table_properties
  | column_clauses
  | constraint_clauses
  | alter_table_partitioning
  | alter_external_table
  | move_table_clause
  ]
  [ enable_disable_clause
  | { ENABLE | DISABLE } { TABLE LOCK | ALL TRIGGERS }
  ] ...
  ;
Copy

참고

Snowflake 구문을 검토하려면 다음 설명서 를 검토하십시오.

2. Sample Source Patterns

2.1. 절이 있는 테이블 변경

경고

memoptimize_read_clausememoptimize_read_clause 는 Snowflake에 적용되지 않으므로 제거됩니다.

Oracle
ALTER TABLE SOMESCHEMA.SOMENAME 
MEMOPTIMIZE FOR READ 
MEMOPTIMIZE FOR WRITE
 ADD (SOMECOLUMN NUMBER , SOMEOTHERCOLUMN VARCHAR(23)) 
 (PARTITION PT NESTED TABLE COLUMN_VALUE STORE AS SNAME
 ( SUBPARTITION SPART NESTED TABLE COLUMN_VALUE STORE AS SNAME))
ENABLE TABLE LOCK;
Copy
Snowflake
ALTER TABLE SOMESCHEMA.SOMENAME
ADD (SOMECOLUMN NUMBER(38, 18), SOMEOTHERCOLUMN VARCHAR(23));
Copy

참고

일부 column_clauses and constraint_clauses 만 Snowflake에 애플리케이션할 수 있습니다. Oracle에서는 테이블 변경을 통해 생성된 파티션의 속성을 수정할 수 있지만 Snowflake에서는 이러한 작업이 필요하지 않습니다

2.2. 지원되지 않는 대/소문자가 있는 테이블 변경

Oracle
ALTER TABLE SOMENAME MODIFY COLUMN SCOLUMN NOT SUBSTITUTABLE AT ALL LEVELS FORCE;

ALTER TABLE SOMENAME MODIFY(SCOLUMN VISIBLE,SCOLUMN INVISIBLE);

ALTER TABLE SOMENAME MODIFY VARRAY VARRAYITEM (
STORAGE(PCTINCREASE 10));
Copy
Snowflake
!!!RESOLVE EWI!!! /*** SSC-EWI-0109 - ALTER TABLE SYNTAX NOT APPLICABLE IN SNOWFLAKE ***/!!!
ALTER TABLE SOMENAME
MODIFY COLUMN SCOLUMN NOT SUBSTITUTABLE AT ALL LEVELS FORCE;

!!!RESOLVE EWI!!! /*** SSC-EWI-0109 - ALTER TABLE SYNTAX NOT APPLICABLE IN SNOWFLAKE ***/!!!

ALTER TABLE SOMENAME
MODIFY(SCOLUMN VISIBLE,SCOLUMN INVISIBLE);

!!!RESOLVE EWI!!! /*** SSC-EWI-0109 - ALTER TABLE SYNTAX NOT APPLICABLE IN SNOWFLAKE ***/!!!

ALTER TABLE SOMENAME
MODIFY VARRAY VARRAYITEM (
STORAGE(PCTINCREASE 10));
Copy

2.3. ADD CONSTRAINT 작업

ADD CONSTRAINT 작업은 Snowflake에도 동일하지만, ALTER TABLE 문당 1개의 제약 조건만 추가할 수 있으므로 문에 제약 조건이 2개 이상 포함될 경우 설명이 추가됩니다.

경고

enable_disable_clause 은 Snowflake와 관련이 없으므로 제거되었습니다.

Oracle
-- MULTIPLE CONSTRAINT ADDITION SCENARIO
ALTER TABLE TABLE1 ADD (
CONSTRAINT TABLE1_PK
PRIMARY KEY
(ID)
ENABLE VALIDATE,
CONSTRAINT TABLE1_FK foreign key(ID2)
references TABLE2 (ID) ON DELETE CASCADE);

-- ONLY ONE CONSTRAINT ADDITION SCENARIO
ALTER TABLE TABLE1 ADD (
CONSTRAINT TABLE1_FK foreign key(ID2)
references TABLE2 (ID) ON DELETE CASCADE);
Copy
Snowflake
-- MULTIPLE CONSTRAINT ADDITION SCENARIO
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0067 - MULTIPLE CONSTRAINT DEFINITION IN A SINGLE STATEMENT IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
ALTER TABLE TABLE1
ADD (
CONSTRAINT TABLE1_PK
PRIMARY KEY
(ID) ,
CONSTRAINT TABLE1_FK foreign key(ID2)
references TABLE2 (ID) ON DELETE CASCADE);

-- ONLY ONE CONSTRAINT ADDITION SCENARIO
ALTER TABLE TABLE1
ADD
CONSTRAINT TABLE1_FK foreign key(ID2)
references TABLE2 (ID) ON DELETE CASCADE;
Copy

Known Issues

  1. 테이블의 일부 속성은 애플리케이션에 맞게 조정되거나 적용되지 않을 수 있습니다.

테이블 삭제

참고

출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.

설명

테이블 삭제 문은 테이블을 제거하는 데 사용됩니다. 이 문은Oracle Snowflake 사이에 약간씩 다릅니다. 차이점에 대한 자세한 내용은 각 설명서를 다시 확인할 수 있습니다.

Oracle에서 Drop Table 구문은 다음과 같습니다.

DROP TABLE <table_name> [ CASCADE CONSTRAINTS ] [ PURGE ]
Copy

Snowflake에서 Drop Table 구문은 다음과 같습니다.

DROP TABLE [ IF EXISTS ] <table_name> [ CASCADE | RESTRICT ]
Copy

가장 큰 차이점은 테이블이 시스템에서 영구적으로 제거되지 않으므로 Snowflake에는 PURGE 절에 대한 등가물이 없다는 것입니다. 하지만 CASCADE CONSTRAINTS 및 CASCADE 절은 같습니다. 이 테이블을 참조하는 외래 키가 있더라도 둘 다 테이블을 삭제합니다.

이제 몇 가지 코드 예시와 변환된 후의 모습을 살펴보겠습니다. 각 예제에서는 테이블 드롭 문의 다른 변형을 사용합니다.

예 1:

이 예제에서는 가능한 한 간단하게 Drop Table 문을 사용합니다.

입력 코드:

DROP TABLE TEST_TABLE1;
Copy

변환된 코드:

DROP TABLE TEST_TABLE1;
Copy
예 2:

이 예제에서는 PURGE 절과 함께 Drop Table 문을 사용합니다. Snowflake에는 Drop Table 문 내에 있는 PURGE 절에 해당하는 문이 없다는 것을 기억하십시오.

입력 코드:

DROP TABLE TEST_TABLE1 PURGE;
Copy

변환된 코드:

DROP TABLE TEST_TABLE1;
Copy
예 3:

이 예제에서는 CASCADE CONSTRAINTS 절과 함께 Drop Table 문을 사용합니다.

입력 코드:

DROP TABLE TEST_TABLE1 CASCADE CONSTRAINTS;
Copy

변환된 코드:

DROP TABLE TEST_TABLE1 CASCADE;
Copy

변환된 코드에서는 CASCADE CONSTRAINTS 절에서 CONSTRAINTS 단어가 제거됩니다.

예 4:

이 예제에서는 CASCADE CONSTRAINTS 및 PURGE 절과 함께 Drop Table 문을 사용합니다.

입력 코드:

DROP TABLE TEST_TABLE1 CASCADE CONSTRAINTS PURGE;
Copy

변환된 코드:

DROP TABLE TEST_TABLE1 CASCADE;
Copy

보시다시피 코드가 변경됩니다. 새 Snowflake 코드에서는 PURGE 절이 제거되고 CASCADE 절에서 CONSTRAINTS 단어도 제거됩니다.

기능적 동등성

다음 코드를 실행하여 기능적 동등성을 확인하고, 동등하지 않은 유일한 부분은 PURGE 절이며, Oracle에서는 시스템에서 테이블을 완전히 제거하며 Snowflake와 동등한 것이 없다는 점에 유의하십시오. 두 경우 모두 다른 테이블에서 참조된 경우에도 테이블이 삭제됩니다.

Oracle:

CREATE TABLE TEST_TABLE2 (
    col2 INTEGER,
    CONSTRAINT constraint_name PRIMARY KEY (col2)
);

CREATE TABLE OTHER_TABLE (
    other_col INTEGER REFERENCES TEST_TABLE2 (col2)
);

DROP TABLE TEST_TABLE2 CASCADE CONSTRAINTS PURGE;
Copy

Snowflake:

CREATE OR REPLACE TABLE TEST_TABLE2 (
       col2 INTEGER,
       CONSTRAINT constraint_name PRIMARY KEY (col2)
   )
   COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
   ;

   CREATE OR REPLACE TABLE OTHER_TABLE (
          other_col INTEGER REFERENCES TEST_TABLE2 (col2)
      )
   COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
   ;

   DROP TABLE TEST_TABLE2 CASCADE;
Copy

관련 EWIs

관련 EWIs 없음.

Create Index

경고

현재 _ Create Index _ 문은 변환되지 않지만, 구문 분석 중입니다. 또한 소스 코드에 Create index 문이 있는 경우 _ Assessment Report _에서 이를 설명합니다.

create index 구문 분석 코드의 예입니다.

CREATE UNIQUE INDEX COL1_INDEX ILM (ADD POLICY OPTIMIZE AFTER 10 DAYS OF NO ACCESS) ON CLUSTER CLUSTER1
ONLINE USABLE DEFERRED INVALIDATION;

CREATE BITMAP INDEX COL1_INDEX ILM (ADD POLICY OPTIMIZE ( ON FUNC1 )) ON TABLE1 AS TAB1 (COL1 ASC) GLOBAL PARTITION BY RANGE (COL1, COL2) ( PARTITION VALUES LESS THAN (MAXVALUE) ) UNUSABLE IMMEDIATE INVALIDATION;

CREATE MULTIVALUE INDEX COL1_INDEX ILM (ADD POLICY SEGMENT TIER TO LOW_COST_TBS) ON TABLE1( TAB1 COL1 DESC, TAB1 COL2 ASC) FROM TABLE1 AS TAB1 WHERE COL1 > 0 LOCAL STORE IN (STORAGE1)
VISIBLE USABLE DEFERRED INVALIDATION;

CREATE INDEX COL1_INDEX ILM (DELETE POLICY POLICY1) ON CLUSTER CLUSTER1
PCTFREE 10
LOGGING
ONLINE
TABLESPACE DEFAULT
NOCOMPRESS
SORT
REVERSE
VISIBLE
INDEXING PARTIAL
NOPARALLEL;

CREATE INDEX COL1_INDEX ILM (DELETE_ALL) ON TABLE1 AS TAB1 (COL1 ASC) LOCAL (
PARTITION PARTITION1 TABLESPACE TABLESPACE1 NOCOMPRESS USABLE) DEFERRED INVALIDATION;

CREATE INDEX COL1_INDEX ON TABLE1 (COL1 ASC) GLOBAL
PARTITION BY HASH (COL1, COL2) (PARTITION PARTITION1 LOB(LOB1) STORE AS BASICFILE LOB_NAME (TABLESPACE TABLESPACE1)) USABLE IMMEDIATE INVALIDATION;

CREATE INDEX COL1_INDEX ON TABLE1 (COL1 DESC, COL2 ASC) INDEXTYPE IS INDEXTYPE1 LOCAL ( PARTITION PARTITION1 PARAMETERS('PARAMS')) NOPARALLEL PARAMETERS('PARAMS') USABLE DEFERRED INVALIDATION;

CREATE INDEX COL1_INDEX ON TABLE1 (COL1 ASC) INDEXTYPE IS XDB.XMLINDEX LOCAL ( PARTITION PARTITION1) PARALLEL 6 UNUSABLE IMMEDIATE INVALIDATION;
Copy

참고

아키텍처상의 이유로 Snowflake는 인덱스를 지원하지 않으므로, SnowConvert AI는 인덱스 생성과 관련된 모든 코드를 제거합니다. Snowflake는 모든 테이블에 대해 DML 작업의 성능 속도를 높이는 데 도움이 되는 마이크로 파티션을 자동으로 생성하므로 사용자는 이러한 마이크로 파티션의 생성 및 관리에 대해 걱정할 필요가 없습니다.

일반적으로 이 정도면 예외적으로 쿼리 성능이 매우 우수합니다. 그러나 데이터 클러스터링 키를 생성하여 이를 개선할 수 있는 방법이 있습니다. 마이크로 파티션과 데이터 클러스터링에 대한 자세한 내용은 Snowflake의 공식 페이지 에서 확인할 수 있습니다.

Create Sequence

먼저 코드 예시를 통해 코드가 변환된 후 어떤 모습일지 살펴보겠습니다.

Oracle:

CREATE SEQUENCE SequenceSample
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
Copy

Snowflake:

CREATE OR REPLACE SEQUENCE SequenceSample
START WITH 1000
INCREMENT BY 1
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}';
Copy

첫 번째 변경은 스키마 또는 데이터 웨어하우스를 시퀀스 이름에 적용하는 것입니다. 두 번째 변환은 일부 요소를 제거한 다음 설명으로 추가하는 것으로 구성되는데, Oracle은 생성 시퀀스에 Snowflake에서 지원되지 않는 일부 요소를 가지고 있기 때문입니다.

Oracle에서 시퀀스 이름 뒤에 NOT 설명이 있는 요소는 다음과 같습니다

  • START WITH 1000

  • INCREMENT BY 1

요소가 이러한 요소 중 하나가 아닌 경우 예시에서와 같이 생성 시퀀스 바로 앞에 설명과 함께 경고로 추가됩니다.

제거되는 요소는 다음과 같습니다

  • MAXVALUE

  • NOMAXVALUE

  • MINVALUE

  • NOMINVALUE

  • CYCLE

  • NOCYCLE

  • CACHE

  • NOCACHE

  • ORDER

  • NOORDER

  • KEEP

  • NOKEEP

  • SESSION

  • GLOBAL

  • SCALE

  • EXTEND

  • SCALE

  • NOEXTEND

  • NOSCALE

  • SHARD

  • EXTEND

  • SHARD

  • NOEXTEND

  • NOSHARD

SEQUENCE EXPRESSIONS

  • NEXTVAL: Snowflake 문법은 Oracle 문법과 동일합니다.

  • CURRVAL: Snowflake에 해당하는 함수가 없으므로 stub 함수로 변환됩니다. 이링크 에서 Snowflake의 접근법을 이해할 수 있습니다.

Oracle:

select seq1.nextval from dual;
select seq1.currval from dual;
Copy

Snowflake:

select seq1.nextval from dual;

select
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0069 - THE SEQUENCE CURRVAL PROPERTY IS NOT SUPPORTED IN SNOWFLAKE. ***/!!! seq1.currval from dual;
Copy

시퀀스 START WITH

START WITH 문 값은 Snowflake에서 허용하는 최대 값을 초과할 수 있습니다. 시작 값에 대해 Snowflake가 말한 것은 다음과 같습니다. 시퀀스에서 반환되는 첫 번째 값을 지정합니다. 지원되는 값은 64비트 2의 보수 정수로 표현할 수 있는 모든 값입니다(-2^63 ~ 2^63-1)_. 따라서 앞서 언급한 대로 최대 허용 값은 양수의 경우 9223372036854775807, 음수의 경우 9223372036854775808 입니다.

코드 예시

Oracle:
CREATE SEQUENCE SEQUENCE1
START WITH 9223372036854775808;

CREATE SEQUENCE SEQUENCE2
START WITH -9223372036854775809;
Copy
Snowflake:
CREATE OR REPLACE SEQUENCE SEQUENCE1
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0068 - SEQUENCE START VALUE EXCEEDS THE MAX VALUE ALLOWED BY SNOWFLAKE. ***/!!!
START WITH 9223372036854775808
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}';

CREATE OR REPLACE SEQUENCE SEQUENCE2
!!!RESOLVE EWI!!! /*** SSC-EWI-OR0068 - SEQUENCE START VALUE EXCEEDS THE MAX VALUE ALLOWED BY SNOWFLAKE. ***/!!!
START WITH -9223372036854775809
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}';
Copy

관련 EWIs

  1. SSC-EWI-OR0069: 시퀀스 CURRVAL 속성은 Snowflake에서 지원되지 않습니다.

  2. SSC-EWI-OR0068: 시퀀스 시작 값이 Snowflake에서 허용하는 최대값을 초과합니다.

세션 변경

세션 변경

세션 변경에는 Snowflake에 해당하는 기능이 있으며 일부 변수는 Snowflake 변수에 매핑됩니다. 세션 변경 순열이 지원되지 않으면 노드에 설명이 추가되고 경고가 추가됩니다.

Oracle:

alter session set nls_date_format = 'DD-MM-YYYY';
Copy

Snowflake:

ALTER SESSION SET DATE_INPUT_FORMAT = 'DD-MM-YYYY' DATE_OUTPUT_FORMAT = 'DD-MM-YYYY';
Copy

세션 매개 변수 참조

참고

테이블에 표시되지 않는 세션 매개 변수는 현재 변환되고 있지 않습니다.

세션 매개 변수

Snowflake 변환

NLS_DATE_FORMAT

DATE_INPUT_FORMAT and DATE_OUTPUT_FORMAT

NLS_NUMERIC_CHARACTERS

NOT SUPPORTED

Known Issues

문제가 발견되지 않았습니다.

관련 EWIs

관련 EWIs 없음.

Create Synonym

참고

출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.

Create Synonym

Snowflake에서는 동의어가 지원되지 않습니다. 동의어에 대한 참조가 원래 오브젝트에 대해 변경됩니다.

Oracle:

CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA;
Copy

Snowflake:

----** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **
--CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA
                                                       ;
Copy

예 1: 테이블을 참조하는 동의어입니다.

Oracle 소스 코드:

CREATE TABLE TABLITA
(
    COLUMN1 NUMBER
);

CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA;

SELECT * FROM B.TABLITA_SYNONYM WHERE B.TABLITA_SYNONYM.COLUMN1 = 20;
Copy

Snowflake 마이그레이션 코드: SELECT 가 원래 동의어를 가리키던 것이 이제는 동의어를 가리키는 테이블을 가리키는 것을 알 수 있습니다.

CREATE OR REPLACE TABLE TABLITA
    (
        COLUMN1 NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
    ;

--    --** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **

--    CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA
                                                           ;

SELECT * FROM
    TABLITA
    WHERE
    TABLITA.COLUMN1 = 20;
Copy

예 2: 다른 동의어를 참조하는 동의어입니다.

Oracle 소스 코드:

CREATE TABLE TABLITA
(
    COLUMN1 NUMBER
);

CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA;
CREATE OR REPLACE SYNONYM C.TABLITA_SYNONYM2 FOR B.TABLITA_SYNONYM;

SELECT * FROM C.TABLITA_SYNONYM2 WHERE C.TABLITA_SYNONYM2.COLUMN1 = 20;

UPDATE C.TABLITA_SYNONYM2 SET COLUMN1 = 10;

INSERT INTO C.TABLITA_SYNONYM2 VALUES (1);
Copy

Snowflake 마이그레이션 코드: SELECT, UPDATE, INSERT가 원래 동의어를 참조하던 것이 이제는 원자성 오브젝트인 테이블을 참조한다는 것을 알 수 있습니다.

CREATE OR REPLACE TABLE TABLITA
    (
        COLUMN1 NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/
    )
    COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
    ;

--    --** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **

--    CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA
                                                           ;

--    --** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **
--CREATE OR REPLACE SYNONYM C.TABLITA_SYNONYM2 FOR B.TABLITA_SYNONYM
                                                                  ;

SELECT * FROM
    TABLITA
    WHERE
    TABLITA.COLUMN1 = 20;

    UPDATE TABLITA
    SET COLUMN1 = 10;

    INSERT INTO TABLITA
    VALUES (1);
Copy

예 3: 뷰를 참조하는 동의어

Oracle 소스 코드

CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA;

CREATE OR REPLACE SYNONYM C.TABLITA_SYNONYM2 FOR B.TABLITA_SYNONYM;

CREATE VIEW VIEW_ORGINAL AS SELECT * FROM C.TABLITA_SYNONYM2;

CREATE OR REPLACE SYNONYM VIEW_SYNONYM FOR VIEW_ORGINAL;

SELECT * FROM VIEW_SYNONYM;
Copy

Snowflake 마이그레이션 코드: SELECT가 원래 동의어를 참조하던 것이 이제는 원자성 오브젝트인 뷰를 참조한다는 것을 알 수 있습니다.

----** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **
--CREATE OR REPLACE SYNONYM B.TABLITA_SYNONYM FOR TABLITA
                                                       ;

----** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **
--CREATE OR REPLACE SYNONYM C.TABLITA_SYNONYM2 FOR B.TABLITA_SYNONYM
                                                                  ;

CREATE OR REPLACE VIEW VIEW_ORGINAL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}'
AS
--** SSC-FDM-0001 - VIEWS SELECTING ALL COLUMNS FROM A SINGLE TABLE ARE NOT REQUIRED IN SNOWFLAKE AND MAY IMPACT PERFORMANCE. **
SELECT * FROM
TABLITA;

----** SSC-FDM-OR0005 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **

--CREATE OR REPLACE SYNONYM VIEW_SYNONYM FOR VIEW_ORGINAL
                                                       ;

SELECT * FROM
VIEW_ORGINAL;
Copy

관련 EWIs

  1. SSC-FDM-0001: 단일 테이블에서 모든 열을 선택하는 뷰는 Snowflake에서 필수가 아닙니다.

  2. SSC-FDM-0006: 숫자 유형 열이 Snowflake에서 유사하게 동작하지 않을 수 있습니다.

  3. SSC-FDM-OR0005: Snowflake에서는 동의어가 지원되지 않지만, 이 동의어에 대한 참조가 원래 오브젝트 이름으로 변경되었습니다.