RETURN
ExamplesDECLARE VARIABLE
Declares a local variable
DECLARE [VARIABLE] varname <domain_or_non_array_type> [NOT NULL] [COLLATE collation] [{DEFAULT | = } <initvalue>]; <domain_or_non_array_type> ::= !! See Scalar Data Types Syntax !! <initvalue> ::= <literal> | <context_var>
Argument | Description |
---|---|
varname |
Name of the local variable |
collation |
Collation |
initvalue |
Initial value for this variable |
literal |
Literal of a type compatible with the type of the local variable |
context_var |
Any context variable whose type is compatible with the type of the local variable |
The statement DECLARE [VARIABLE]
is used for declaring a local variable.One DECLARE [VARIABLE]
statement is required for each local variable.Any number of DECLARE [VARIABLE]
statements can be included and in any order.The name of a local variable must be unique among the names of local variables and input and output parameters declared for the module.
A special case of DECLARE [VARIABLE]
— declaring cursors — is covered separately in [fblangref50-psql-declare-cursor]
A local variable can be of any SQL type other than an array.
A domain name can be specified as the type;the variable will inherit all of its attributes.
If the TYPE OF domain
clause is used instead, the variable will inherit only the domain’s data type, and, if applicable, its character set and collation attributes.Any default value or constraints such as NOT NULL
or CHECK
constraints are not inherited.
If the TYPE OF COLUMN relation.column
option is used to “borrow” from a column in a table or view, the variable will inherit only the column’s data type, and, if applicable, its character set and collation attributes.Any other attributes are ignored.
NOT NULL
ConstraintFor local variables, you can specify the NOT NULL
constraint, disallowing NULL
values for the variable.If a domain has been specified as the data type and the domain already has the NOT NULL
constraint, the declaration is unnecessary.For other forms, including use of a domain that is nullable, the NOT NULL
constraint can be included if needed.