Variables can be defined in several places:
Substitution SQL*Plus |
Host/Bind SQL*Plus or other Host Program |
PL/SQL Stored Procedure |
|
Where to use | For passing values into an SQL script. | In SQL Plus and in PL/SQL blocks | Used only within a PL/SQL block |
How to initialise and assign | DEFINE MyVar=15000 ACCEPT MyVar PROMPT Enter Var. && MyVar & MyVar |
VARIABLE MyVar NUMBER |
DECLARE := |
Prefix | & | : | none |
How to Examine | DEFINE MyVar | PRINT MyVar | DBMS_OUTPUT.put_line or assign to a bind variable or simply write values into a table. |
To avoid being re-prompted for substitution variables use a double ampersand - this will DEFINE the variable and you won't be re-prompted when Sql*Plus encounters the same value again (within the same session.)
SET CONCAT - This defines the concatenation character (default= . ) For characters that immediately follow the variable.
Example - Passing values to a SQL Plus script with the START (or @) command:
SQL> @MyScript.sql Finance 15
Within the script &1 will now evaluate as finance and &2 as 15
SQL> @MyScript.sql Sales 25
This time the same script will run and substitute &1 as sales and &2 as 25
Related commands
If you are using Java stored procedures then you can add Java variables to the
above.
defined as:
datatype variable_name;
where datatype is: string, char, boolean, byte, short, int, long, float,
double, or a class variable.