BEGIN END

Translation reference to convert Teradata BEGIN END clause to Snowflake Scripting

BEGIN END TRANSACTION

Description

Defines the beginning of an explicit logical transaction in Teradata session mode.

For more information regarding Teradata BEGIN END Transaction, check here.

[ BEGIN TRANSACTION | BT ]
     statement
     [ statement ]... ]
[ END TRANSACTION | ET ];

Sample Source Pattern

Teradata

REPLACE PROCEDURE BeginEndProcedure()
BEGIN
    DECLARE HELLOSTRING VARCHAR(60);
    BEGIN TRANSACTION
        SET HELLOSTRING = 'HELLO WORLD';
    END TRANSACTION;
END;

Snowflake Scripting

CREATE OR REPLACE PROCEDURE PUBLIC.BeginEndProcedure ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
   BEGIN
      LET HELLOSTRING VARCHAR(60);
      BEGIN TRANSACTION
      HELLOSTRING := 'HELLO WORLD';
      COMMIT;
   END;
$$;

BEGIN END REQUEST

Description

Delimits a SQL multistatement request

For more information regarding Teradata BEGIN END Request, check here.

BEGIN REQUEST
     statement
     [ statement ]... ]
END REQUEST;

Sample Source Pattern

Teradata

REPLACE PROCEDURE BeginEndProcedure()
BEGIN
    DECLARE HELLOSTRING VARCHAR(60);
    BEGIN REQUEST
        SET HELLOSTRING = 'HELLO WORLD';
    END REQUEST;
END;

Snowflake Scripting

CREATE OR REPLACE PROCEDURE PUBLIC.BeginEndProcedure ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
   BEGIN
      LET HELLOSTRING VARCHAR(60);
      BEGIN
         HELLOSTRING := 'HELLO WORLD';
         COMMIT ;
      EXCEPTION
         WHEN other THEN
            ROLLBACK;
      END;
   END;
$$;

BEGIN END COMPOUND

Description

Delimits a compound statement in a stored procedure.

For more information regarding Teradata BEGIN END Compound, check here.

label_name: BEGIN
     statement
     [ statement ]... ]
END label_name;

Sample Source Pattern

Teradata

REPLACE PROCEDURE BeginEndProcedure()
BEGIN
    DECLARE HELLOSTRING VARCHAR(60);
    label_name: BEGIN
        SET HELLOSTRING = 'HELLO WORLD';
    END label_name;
END;

Snowflake Scripting

CREATE OR REPLACE PROCEDURE PUBLIC.BeginEndProcedure ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
   BEGIN
      LET HELLOSTRING VARCHAR(60);
      BEGIN
         HELLOSTRING := 'HELLO WORLD';
      END LABEL_NAME;
   END;
$$;

Known Issues

1. Labels not supported in outer BEGIN END blocks

Teradata

REPLACE PROCEDURE procedureLabelSingle()
label_name: BEGIN
    DECLARE HELLOSTRING VARCHAR(60);
    SET HELLOSTRING = 'HELLO WORLD';
END label_name;

Snowflake Scripting

CREATE OR REPLACE PROCEDURE PUBLIC.procedureLabelSingle ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
  --** MSC-ERROR - MSCEWI1058 - FUNCTIONALITY FOR 'label_name LABEL' IS NOT CURRENTLY SUPPORTED BY SNOWFLAKE SCRIPTING **
  BEGIN
    LET HELLOSTRING VARCHAR(60);
    HELLOSTRING := 'HELLO WORLD';
  END;
$$;

Last updated