Some parts of the output code are omitted for clarity reasons.
Severity
Medium
Description
This error message appears when a query, like a select, tries to access an attribute within a column that was defined as a type. These cannot be automatically converted, but they can be quickly converted by hand.
Example Code:
Input Code Oracle:
IN -> Oracle_01.sql
CREATE TYPE type1 AS OBJECT ( attribute1 VARCHAR2(20), attribute2 NUMBER);CREATE TYPE type2 AS OBJECT ( property1 type1, property2 DATE);CREATE TABLE my_table ( id NUMBER PRIMARY KEY, column1 type2);INSERT INTO my_table VALUES (1, type2(type1('value1', 100), SYSDATE));SELECT column1.property1.attribute1, column1.property2FROM my_table;
Output Code:
OUT -> Oracle_01.sql
!!!RESOLVE EWI!!! /*** SSC-EWI-0056 - CUSTOM TYPES ARE NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS CUSTOM TYPE WERE CHANGED TO VARIANT ***/!!!CREATE TYPE type1 AS OBJECT ( attribute1 VARCHAR2(20), attribute2 NUMBER);!!!RESOLVE EWI!!! /*** SSC-EWI-0056 - CUSTOM TYPES ARE NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS CUSTOM TYPE WERE CHANGED TO VARIANT ***/!!!CREATE TYPE type2 AS OBJECT ( property1 type1, property2 DATE);CREATE OR REPLACE TABLE my_table ( id NUMBER(38, 18) /*** SSC-FDM-0006 - NUMBER TYPE COLUMN MAY NOT BEHAVE SIMILARLY IN SNOWFLAKE. ***/ PRIMARY KEY, column1 VARIANT !!!RESOLVE EWI!!! /*** SSC-EWI-0062 - CUSTOM TYPE 'type2' USAGE CHANGED TO VARIANT ***/!!!)COMMENT ='{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"oracle"}}';CREATE OR REPLACE VIEW PUBLIC.my_table_viewCOMMENT ='{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "oracle", "convertedOn": "" }}'ASSELECT id, column1:property1:attribute1 :: VARCHARAS attribute1, column1:property1:attribute2 :: NUMBER AS attribute2, column1:property2 :: DATE AS property2FROM my_table;INSERT INTO my_tableVALUES (1, type2(type1('value1', 100) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'type1' NODE ***/!!!, CURRENT_TIMESTAMP()) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'type2' NODE ***/!!!);SELECT !!!RESOLVE EWI!!! /*** SSC-EWI-OR0082 - CANNOT CONVERT NESTED TYPE ATTRIBUTE EXPRESSION ***/!!! column1.property1.attribute1, column1.property2FROM my_table;
Recommendations
The code can be manually fixed by changing the '.' accessor for the ':' wherever a type column is being accessed.