Constants

Translation spec for Package Constants

Description

PACKAGE CONSTANTS can be declared either in the package declaration or in the PACKAGE BODY. When a package constant is used in a procedure, a new variable is declared with the same name and value as the constant, so the resulting code is pretty similar to the input.

constant CONSTANT datatype [NOT NULL] { := | DEFAULT } expression ;

Sample Source Patterns

Sample auxiliary code

create table table1(id number);

Oracle

CREATE OR REPLACE PACKAGE PKG1 AS
	PROCEDURE procedure1;
	package_constant CONSTANT NUMBER:= 9999;
END PKG1;

CREATE OR REPLACE PACKAGE BODY PKG1 AS
	PROCEDURE procedure1 AS
	BEGIN
		INSERT INTO TABLE1(ID) VALUES(package_constant);
	END;
END PKG1;

CALL PKG1.procedure1();

SELECT * FROM TABLE1;

Snowflake

CREATE SCHEMA IF NOT EXISTS PKG1;

/*** MSC-WARNING - MSCEWI3034 - PACKAGE PROCEDURE DECLARATION HEADING IS NOT NECESSARY IN SNOWFLAKE ***/
  /*	PROCEDURE procedure1;*/

/*** MSC-WARNING - MSCEWI3054 - PACKAGE CONSTANTS IN STATEFUL PACKAGE ARE DECLARED INSIDE THE PROCEDURE OR FUNCTIONS THAT USE THEM ***/
  /*	package_constant CONSTANT NUMBER(38, 18) := 9999;*/

CREATE OR REPLACE PROCEDURE PKG1.procedure1 ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
	DECLARE
		PACKAGE_CONSTANT NUMBER:= 9999;
	BEGIN
		INSERT INTO PUBLIC.TABLE01(ID) VALUES(:PACKAGE_CONSTANT);
	END;
$$;

CALL PKG1.procedure1();

SELECT * FROM
	PUBLIC.TABLE01;

Known Issues

No issues were found.

No related EWIs.

Last updated