SnowConvert AI – Oracle – SQL-Anweisungen

Dieses Dokument beschreibt alle Ähnlichkeiten und Unterschiede bei der SQL-Syntax und wie SnowConvert AI diese SQL-Syntaxen in eine funktionsfähige Snowflake-SQL-Syntax übersetzen würde.

Alter Table

Dieser Abschnitt zeigt Ihnen die Übersetzungen im Zusammenhang mit ALTER TABLE.

Bemerkung

Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.

1. Description

Verwenden Sie die Anweisung ALTER TABLE, um die Definition einer nicht partitionierten Tabelle, einer partitionierten Tabelle, einer Tabellenpartition oder einer Tabellenunterpartition zu ändern. Bei Objekttabellen oder relationalen Tabellen mit Objektspalten verwenden Sie ALTER TABLE, um die Tabelle in die neueste Definition ihres referenzierten Typs zu konvertieren, nachdem der Typ geändert wurde (Oracle Dokumentation).

Oracle-Syntax

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

Bemerkung

Die Snowflake-Syntax können Sie in der folgenden Dokumentation nachlesen.

2. Sample Source Patterns

2.1. Alter Table mit Klauseln

Warnung

memoptimize_read_clause und memoptimize_read_clause sind in Snowflake nicht anwendbar und werden daher entfernt.

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

Bemerkung

Nur einige column_clauses und constraint_clauses sind in Snowflake anwendbar. In Oracle erlaubt „Create Table“ die Änderung der Eigenschaften von erstellten Partitionen, aber in Snowflake sind diese Aktionen nicht erforderlich

2.2. Alter Table mit nicht unterstützen Fällen

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. ADDCONSTRAINT-Aktion

Die Aktion ADD CONSTRAINT hat eine Entsprechung in Snowflake, aber es kann nur eine Einschränkung pro ALTER TABLE-Anweisung hinzugefügt werden, so dass sie kommentiert wird, wenn die Anweisung zwei oder mehr Einschränkungen enthält.

Warnung

enable_disable_clause wurde entfernt, da sie in Snowflake nicht relevant ist.

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

Bekannte Probleme

  1. Einige Eigenschaften in den Tabellen müssen möglicherweise angepasst werden oder sind nicht anwendbar.

Drop Table

Bemerkung

Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.

Beschreibung

Eine DROP TABLE-Anweisung wird verwendet, um eine Tabelle zu entfernen. Diese Anweisung variiert ein wenig zwischen [Oracle ](https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/DROP-TABLE. html#GUID-39D89EDC-155D-4A24-837E-D45DDA757B45)und Snowflake. Bitte überprüfen Sie die jeweilige Dokumentation, um weitere Informationen zu den Unterschieden zu erhalten.

In Oracle lautet die Syntax für „Drop Table“:

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

In Snowflake lautet die Syntax für „Drop Table“:

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

Der Hauptunterschied besteht darin, dass Snowflake keine gleichwertige Klausel für die PURGE-Klausel hat, da die Tabelle nicht dauerhaft aus dem System entfernt wird. Die CASCADE CONSTRAINTS- und die CASCADE-Klauseln sind jedoch gleich. Beide löschen die Tabelle, auch wenn Fremdschlüssel existieren, die auf diese Tabelle verweisen.

Beispiele

Sehen wir uns nun einige Codebeispiele an und wie der Code nach der Umwandlung aussehen würde. Jedes Beispiel verwendet eine andere Variante der DROP TABLE-Anweisung.

Beispiel 1:

In diesem Beispiel wird die DROP TABLE-Anweisung so einfach wie möglich verwendet.

Eingabecode:

DROP TABLE TEST_TABLE1;
Copy

Transformierter Code:

DROP TABLE TEST_TABLE1;
Copy
Beispiel 2:

Dieses Beispiel verwendet die DROP TABLE-Anweisung mit der PURGE-Klausel. Denken Sie daran, dass es in Snowflake keine Entsprechung für die PURGE-Klausel innerhalb einer DROP TABLE-Anweisung gibt.

Eingabecode:

DROP TABLE TEST_TABLE1 PURGE;
Copy

Transformierter Code:

DROP TABLE TEST_TABLE1;
Copy
Beispiel 3:

Dieses Beispiel verwendet die DROP TABLE-Anweisung mit der CASCADE CONSTRAINTS-Klausel.

Eingabecode:

DROP TABLE TEST_TABLE1 CASCADE CONSTRAINTS;
Copy

Transformierter Code:

DROP TABLE TEST_TABLE1 CASCADE;
Copy

In dem umgewandelten Code wird das Wort CONSTRAINTS aus der CASCADE CONSTRAINTS-Klausel entfernt.

Beispiel 4:

Dieses Beispiel verwendet die DROP TABLE-Anweisung mit den CASCADE CONSTRAINTS- und PURGE-Klauseln.

Eingabecode:

DROP TABLE TEST_TABLE1 CASCADE CONSTRAINTS PURGE;
Copy

Transformierter Code:

DROP TABLE TEST_TABLE1 CASCADE;
Copy

Wie gesehen, ändert sich der Code. Im neuen Snowflake-Code wird die Klausel PURGE entfernt und das Wort CONSTRAINTS wird auch aus der CASCADE-Klausel entfernt.

Funktionsäquivalenz

Führen Sie den folgenden Code aus, um die Funktionsäquivalenz zu prüfen. Beachten Sie, dass der einzige Teil, der nicht äquivalent ist, die PURGE-Klausel ist, die in Oracle die Tabelle vollständig aus dem System entfernt. Es gibt keine Entsprechung für Snowflake. In beiden Fällen wird die Tabelle gelöscht, auch wenn sie in einer anderen Tabelle referenziert wird.

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

Zugehörige EWIs

Keine zugehörigen EWIs.

Create Index

Warnung

Derzeit wird die Anweisung _ Create Index _ nicht konvertiert, aber geparst. Wenn Ihr Quellcode außerdem Create Index-Anweisungen enthält, werden diese im _ Bewertungsbericht_ berücksichtigt.

Beispiel für einen geparsten Code von 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

Bemerkung

Aus architektonischen Gründen unterstützt Snowflake keine Indizes, sodass SnowConvert AI den gesamten Code entfernt, der mit der Erstellung von Indizes verbunden ist. Snowflake erstellt automatisch Mikropartitionen für jede Tabelle, um die Leistung von DML-Operationen zu beschleunigen. Benutzende müssen sich so nicht um die Erstellung oder Verwaltung dieser Mikropartitionen kümmern.

Normalerweise reicht das aus, um eine außergewöhnlich gute Abfrageleistung zu erzielen. Es gibt jedoch Möglichkeiten, dies zu verbessern, indem Sie Gruppierungsschlüssel für Daten erstellen. Auf der offiziellen Seite von Snowflake finden Sie weitere Informationen über Mikropartitionen und Data Clustering.

Create Sequence

Sehen wir uns zunächst ein Codebeispiel an und wie es nach der Umwandlung aussehen würde.

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

Die erste Änderung, die vorgenommen wird, besteht darin, das Schema oder Datawarehouse auf den Namen der Sequenz anzuwenden. Die zweite Transformation besteht darin, einige Elemente zu entfernen und sie als Kommentare hinzuzufügen, da Orakel einige Elemente in Create Sequence hat, die in Snowflake nicht unterstützt werden.

In Oracle werden nach dem Namen der Sequenz die folgenden Elemente NICHT kommentiert

  • START WITH 1000

  • INCREMENT BY 1

Wenn das Element nicht dazu gehört, wird es kommentiert und als Warnung vor Create Sequence hinzugefügt, wie im Beispiel.

Die folgenden Elemente werden entfernt

  • 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: Die Snowflake-Grammatik ist die gleiche wie die Oracle-Grammatik.

  • CURRVAL: Snowflake hat kein Äquivalent, also erfolgt eine Konvertierung in eine Stub-Funktion. Sehen Sie sich diesen Link an, um den Ansatz von Snowflake zu verstehen.

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

Sequenz STARTWITH

Der Wert der START WITH-Anweisung kann den von Snowflake erlaubten Höchstwert überschreiten. Snowflake sagt zu diesem Startwert: Legt den ersten Wert fest, der von der Sequenz zurückgegeben wird. Unterstützt werden alle Werte, die durch eine 64-Bit-Zweierkomplement-Ganzzahl dargestellt werden können (von -2^63 bis 2^63-1)_. Demnach ist der maximal zulässige Wert 9223372036854775807 für positive Zahlen und 9223372036854775808 für negative Zahlen.

Beispielcode

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

Zugehörige EWIs

  1. SSC-EWI-OR0069: Die Sequence-Eigenschaft CURRVAL wird in Snowflake nicht unterstützt.

  2. SSC-EWI-OR0068: Der Wert für den Start der Sequenz überschreitet den von Snowflake zulässigen Maximalwert.

Alter Session

Alter Session

Alter Session hat eine Entsprechung in Snowflake und einige der Variablen sind Snowflake-Variablen zugeordnet. Wenn eine Permutation von Alter Session nicht unterstützt wird, wird der Knoten kommentiert und eine Warnung hinzugefügt.

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

Referenz Sitzungsparameter

Bemerkung

Die Sitzungsparameter, die nicht in der Tabelle erscheinen, werden derzeit nicht umgewandelt.

Sitzungsparameter

Snowflake-Transformation

NLS_DATE_FORMAT

DATE_INPUT_FORMAT und DATE_OUTPUT_FORMAT

NLS_NUMERIC_CHARACTERS

NOT SUPPORTED

Bekannte Probleme

Es wurden keine Probleme gefunden.

Zugehörige EWIs

Keine zugehörigen EWIs.

Create Synonym

Bemerkung

Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.

Create Synonym

Synonyme werden in Snowflake nicht unterstützt. Die Verweise auf die Synonyme werden für das ursprüngliche Objekt geändert.

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

Beispiel 1 Synonym für eine Tabelle.

Oracle-Quellcode:

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 hat den Code migriert: Sie werden feststellen, dass SELECT ursprünglich auf ein Synonym verweist, jetzt aber auf die Tabelle, die auf das Synonym verweist.

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

Beispiel 2 Synonym für ein anderes Synonym.

Oracle-Quellcode:

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

Migrierter Snowflake-Code: Ursprünglich verwies SELECT , UPDATE, INSERT auf ein Synonym, jetzt bezieht es sich auf das atomare Objekt, bei dem es sich um eine Tabelle handelt.

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

Beispiel 3: Synonym für eine Ansicht.

Oracle-Quellcode

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

Migrierter Snowflake-Code: Ursprünglich verwies SELECT auf ein Synonym, jetzt bezieht es sich auf das atomare Objekt, bei dem es sich um eine Ansicht handelt.

----** 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

Zugehörige EWIs

  1. [SSC-FDM-0001](../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0001): Ansichten, die alle Spalten aus einer einzigen Tabelle auswählen, sind in Snowflake nicht erforderlich.

  2. SSC-FDM-0006: Spalte vom Typ ‚number‘ verhält sich in Snowflake möglicherweise nicht ähnlich.

  3. SSC-FDM-OR0005: Synonyme werden in Snowflake nicht unterstützt, aber Verweise auf dieses Synonym wurden durch den ursprünglichen Objektnamen geändert.