|
Oracle allows variables to 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.
Parameters
Pass values to a SQL Plus script with the START command
e.g.
START MySQLScript.sql Finance 15000
Within the script &1 will now evaluate as 'finance' and &2
as 15000
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.