CREATE VARIABLE statement

Description

Creates a SQL variable.

Syntax

CREATE VARIABLE identifier data-type

Examples

Example 1

This code fragment inserts a large text value into the database:

EXEC SQL BEGIN DECLARE SECTION;
char buffer[5000];
EXEC SQL END DECLARE SECTION;
EXEC SQL CREATE VARIABLE hold_blob VARCHAR;
EXEC SQL SET hold_blob = '';
for(;;) {
	/* read some data into buffer ... */
	size = fread( buffer, 1, 5000, fp );
	if( size <= 0 ) break;
	/* add data to blob using concatenation
	Note that concatenation works for binary 
	data too! */
	EXEC SQL SET hold_blob = hold_blob || :buffer;
}
EXEC SQL INSERT INTO some_table VALUES ( 1, hold_blob );
EXEC SQL DROP VARIABLE hold_blob;

Usage

The CREATE VARIABLE statement creates a new variable of the specified data type. The variable contains the NULL value until it is assigned a different value by the SET VARIABLE statement.

A variable can be used in a SQL expression anywhere a column name is allowed. If a column name exists with the same name as the variable, the variable value is used.

Variables belong to the current connection, and disappear when you disconnect from the database, or when you use the DROP VARIABLE statement. Variables are not visible to other connections. Variables are not affected by COMMIT or ROLLBACK statements.

In Version 12.5 and above, variables created with the CREATE VARIABLE statement persist for a connection even when the statement is issued within a (BEGIN...END) statement. You must use DECLARE to create variables that only persist within a (BEGIN...END) statement, for example, within stored procedures.

Variables are useful for creating large text or binary objects for INSERT or UPDATE statements from Embedded SQL programs.

Local variables in procedures and triggers are declared within a compound statement. See “Using compound statements” in Chapter 1, “Using Procedures and Batches” in the System Administration Guide: Volume 2.


Side effects

None

Standards

Permissions

None

See also

BEGIN … END statement

Chapter 3, “SQL Data Types” in Reference: Building Blocks, Tables, and Procedures

DECLARE statement

DROP VARIABLE statement

SET statement [ESQL]