For more information check the Synonym translation reference.
Synonyms used inside PL/SQL blocks are changed to the referenced object and the Schema will be added if necessary.
Implicit Schema added
When the procedure or function is inside an schema and the synonym is inside that schema but it is being used without the schema, the converted code will add the schema.
Oracle
CREATETABLEschema_one.TABLE_TEST1( COL1 INTEGER, COL2 DATEDEFAULTSYSDATE );CREATEORREPLACESYNONYM schema_one.MY_SYNONYM1 FOR schema_one.TABLE_TEST1;createorreplaceprocedure schema_one.procedure1 asreturnval integer;beginselect col1 into returnval from my_synonym1;end; Some code
Snowflake
-- **** CASE 1: Should add implicit schema for this synonym (schema_one) ****CREATE OR REPLACETABLEschema_one.TABLE_TEST1 (COL1 INTEGER,COL2 DATEDEFAULT CURRENT_DATE);-- ** MSC-WARNING - MSCEWI3025 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **
--CREATE OR REPLACE SYNONYM schema_one.MY_SYNONYM1 FOR schema_one.TABLE_TEST1 ;CREATEORREPLACEPROCEDURE schema_one.procedure1 ()RETURNS STRINGLANGUAGE JAVASCRIPTEXECUTEASCALLERAS$$// Helper Code let RETURNVAL; [RETURNVAL] =EXEC(`SELECT col1 from schema_one.TABLE_TEST1`);$$;
Schema of referenced object added
When the synonym references an object that is in a specific schema, the schema name will be added to the referenced object.
Oracle
CREATEORREPLACESYNONYM MY_SYNONYM2 FOR schema_one.TABLE_TEST1;createorreplaceprocedure procedure2 asreturnval integer;beginselect col1 into returnval from my_synonym2;end;
Snowflake
-- ** MSC-WARNING - MSCEWI3025 - SYNONYMS NOT SUPPORTED IN SNOWFLAKE BUT REFERENCES TO THIS SYNONYM WERE CHANGED BY THE ORIGINAL OBJECT NAME. **
---- **** CASE 2: Should add the schema of the referenced object--CREATE OR REPLACE SYNONYM MY_SYNONYM2 FOR schema_one.TABLE_TEST1 ;CREATEORREPLACEPROCEDURE PUBLIC.procedure2 ()RETURNS STRINGLANGUAGE JAVASCRIPTEXECUTEASCALLERAS$$// Helper Code let RETURNVAL; [RETURNVAL] =EXEC(`SELECT col1 from schema_one.TABLE_TEST1`);$$;
Related EWIs
MSCEWI3025: Synonyms changed to original object name.