Cheap VPS & Xen Server

Residential Proxy Network - Hourly & Monthly Packages

PL/SQL Variables

A variable is a meaningful name which facilitates a programmer to store data temporarily during the execution of code. It helps you to manipulate data in PL/SQL programs. It is nothing except a name given to a storage area. Each variable in the PL/SQL has a specific data type which defines the size and layout of the variable’s memory.

A variable should not exceed 30 characters. Its letter optionally followed by more letters, dollar signs, numerals, underscore etc.

1. It needs to declare the variable first in the declaration section of a PL/SQL block before using it.

2. By default, variable names are not case sensitive. A reserved PL/SQL keyword cannot be used as a variable name.

How to declare variable in PL/SQL

You must declare the PL/SQL variable in the declaration section or in a package as a global variable. After the declaration, PL/SQL allocates memory for the variable?s value and the storage location is identified by the variable name.

Syntax for declaring variable:

Following is the syntax for declaring variable:

  1. variable_name [CONSTANT] datatype [NOT NULL] [:= | DEFAULT initial_value]

Here, variable_name is a valid identifier in PL/SQL and datatype must be valid PL/SQL data type. A data type with size, scale or precision limit is called a constrained declaration. The constrained declaration needs less memory than unconstrained declaration.

Naming rules for PL/SQL variables

The variable in PL/SQL must follow some naming rules like other programming languages.

  • The variable_name should not exceed 30 characters.
  • The name of the variable must begin with ASCII letter. The PL/SQL is not case sensitive so it could be either lowercase or uppercase. For example: v_data and V_DATA refer to the same variables.
  • You should make your variable easy to read and understand, after the first character, it may be any number, underscore (_) or dollar sign ($).
  • NOT NULL is an optional specification on the variable.

Initializing Variables in PL/SQL

Evertime you declare a variable, PL/SQL defines a default value NULL to it. If you want to initialize a variable with other value than NULL value, you can do so during the declaration, by using any one of the following methods.

  • The DEFAULT keyword
  • The assignment operator
  1. counter binary_integer := 0;
  2. greetings varchar2(20) DEFAULT ‘Hello Kreationnext’;

You can also specify NOT NULL constraint to avoid NULL value. If you specify the NOT NULL constraint, you must assign an initial value for that variable.

You must have a good programming skill to initialize variable properly otherwise, sometimes program would produce unexpected result.

Example of initilizing variable

Let’s take a simple example to explain it well:

  2.    a integer := 30;
  3.    b integer := 40;
  4.    c integer;
  5.    f real;
  6. BEGIN
  7.    c := a + b;
  8.    dbms_output.put_line(‘Value of c: ‘ || c);
  9.    f := 100.0/3.0;
  10.    dbms_output.put_line(‘Value of f: ‘ || f);
  11. END;

After the execution, this will produce the following result:

  1. Value of c: 70
  2. Value of f: 33.333333333333333333
  3. PL/SQL procedure successfully completed.

Variable Scope in PL/SQL:

PL/SQL allows nesting of blocks. A program block can contain another inner block. If you declare a variable within an inner block, it is not accessible to an outer block. There are two types of variable scope:

  • Local Variable: Local variables are the inner block variables which are not accessible to outer blocks.
  • Global Variable: Global variables are declared in outermost block.

Example of Local and Global variables

Let’s take an example to show the usage of Local and Global variables in its simple form:

  2.  — Global variables 
  3.    num1 number := 95;
  4.    num2 number := 85;
  5. BEGIN
  6.    dbms_output.put_line(‘Outer Variable num1: ‘ || num1);
  7.    dbms_output.put_line(‘Outer Variable num2: ‘ || num2);
  8.    DECLARE
  9.       — Local variables
  10.       num1 number := 195;
  11.       num2 number := 185;
  12.    BEGIN
  13.       dbms_output.put_line(‘Inner Variable num1: ‘ || num1);
  14.       dbms_output.put_line(‘Inner Variable num2: ‘ || num2);
  15.    END;
  16. END;
  17. /

After the execution, this will produce the following result:

  1. Outer Variable num1: 95
  2. Outer Variable num2: 85
  3. Inner Variable num1: 195
  4. Inner Variable num2: 185
  5. PL/SQL procedure successfully completed.