Ensuring Backward Compatibility
The PL/SQL Version 2 permits some abnormal behavior which Version 8 disallows.
Particularly, Version 2 permits you to
(i) Make the forward references to RECORD and TABLE types when declaring the variables.
(ii) Specify the name of the variable (not a datatype) in the RETURN clause of the function specification.
(iii) Assign values to the elements of an index-by table IN parameter.
(iv) Pass the fields of a record IN parameter to the other subprogram as OUT parameters
(v) Use the fields of a record OUT parameter on the right-hand side of the assignment statement.
(vi) Use the OUT parameters in the FROM list of a SELECT statement.
For backward compatibility, you might want to remain this particular Version 2 behavior. You can do it by setting the PLSQL_V2_COMPATIBILITY flag. At server side, you can set the flag in 2 ways:
(i) Add the line below to the Oracle initialization file:
PLSQL_V2_COMPATIBILITY=TRUE
(ii)Execute one of the SQL statements below:
ALTER SESSION SET PLSQL_V2_COMPATIBILITY = TRUE;
ALTER SYSTEM SET PLSQL_V2_COMPATIBILITY = TRUE;